交叉编译mqtt,openssl,以arm-2014.05-29-arm-none-linux-gnueabi-i686-pc-linux-gnu为交叉编译工具链

  1. 编写Dockerfile

FROM ubuntu:latest

# 设置工作目录
WORKDIR /app

# 安装依赖
# 添加i386架构,因为某些库只提供32位版本
RUN dpkg --add-architecture i386 \
    && apt-get update \
    && apt-get install -y --no-install-recommends \
        build-essential \
        wget \
        curl \
        git \
        cmake \
        libssl-dev:i386 \
        libssl-dev \
        libc6-dev-i386 \
        zlib1g-dev \
    && apt-get clean \
    && rm -rf /var/lib/apt/lists/*


# 下载并解压交叉编译工具链
RUN wget --no-check-certificate https://sourcery.mentor.com/public/gnu_toolchain/arm-none-linux-gnueabi/arm-2014.05-29-arm-none-linux-gnueabi-i686-pc-linux-gnu.tar.bz2 && \
    tar -xvf arm-2014.05-29-arm-none-linux-gnueabi-i686-pc-linux-gnu.tar.bz2 && \
    rm -rf arm-2014.05-29-arm-none-linux-gnueabi-i686-pc-linux-gnu.tar.bz2

# # 设置环境变量
ENV PATH=$PATH:/app/arm-2014.05/bin/

# # # 下载并编译安装openssl库
RUN wget --no-check-certificate https://www.openssl.org/source/openssl-1.1.1k.tar.gz && \
    tar -xvf openssl-1.1.1k.tar.gz && \
    cd openssl-1.1.1k && \
    CC=gcc ./Configure linux-armv4 --prefix=/app/openssl --cross-compile-prefix=arm-none-linux-gnueabi- && \
    make && \
    make install && \
    cd .. && \
    rm -rf openssl-1.1.1k openssl-1.1.1k.tar.gz

# # 下载并编译安装Eclipse Paho MQTT C库
RUN wget --no-check-certificate https://github.com/eclipse/paho.mqtt.c/archive/v1.3.12.tar.gz && \
    tar -xvf v1.3.12.tar.gz && \
    cd paho.mqtt.c-1.3.12 && \
    make CC=arm-none-linux-gnueabi-gcc AR=arm-none-linux-gnueabi-ar CFLAGS="-I/app/openssl/include" LDFLAGS="-L/app/openssl/lib" && \
    make install && \
    cd .. && \
    rm -rf paho.mqtt.c-1.3.12 v1.3.12.tar.gz

# 清理
RUN apt-get remove -y build-essential wget && \
    apt-get autoremove -y && \
    rm -rf /var/lib/apt/lists/* && \
    rm -rf /app/arm-2014.05

# 设置工作目录
WORKDIR /app/workspace

2 .创建docker容器

docker build -t name:v1.0 .

3 .生成库文件

  1. 在/app/openssl目录下可以看到交叉编译后的openssl库文件

  1. 在/usr/local/lib中可以看到mqtt的库

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值