当前位置:   article > 正文

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

arm-2014.05-29-arm-none-linux-gnueabi-i686-pc-linux-gnu.tar.bz2
  1. 编写Dockerfile

  1. FROM ubuntu:latest
  2. # 设置工作目录
  3. WORKDIR /app
  4. # 安装依赖
  5. # 添加i386架构,因为某些库只提供32位版本
  6. RUN dpkg --add-architecture i386 \
  7. && apt-get update \
  8. && apt-get install -y --no-install-recommends \
  9. build-essential \
  10. wget \
  11. curl \
  12. git \
  13. cmake \
  14. libssl-dev:i386 \
  15. libssl-dev \
  16. libc6-dev-i386 \
  17. zlib1g-dev \
  18. && apt-get clean \
  19. && rm -rf /var/lib/apt/lists/*
  20. # 下载并解压交叉编译工具链
  21. 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 && \
  22. tar -xvf arm-2014.05-29-arm-none-linux-gnueabi-i686-pc-linux-gnu.tar.bz2 && \
  23. rm -rf arm-2014.05-29-arm-none-linux-gnueabi-i686-pc-linux-gnu.tar.bz2
  24. # # 设置环境变量
  25. ENV PATH=$PATH:/app/arm-2014.05/bin/
  26. # # # 下载并编译安装openssl库
  27. RUN wget --no-check-certificate https://www.openssl.org/source/openssl-1.1.1k.tar.gz && \
  28. tar -xvf openssl-1.1.1k.tar.gz && \
  29. cd openssl-1.1.1k && \
  30. CC=gcc ./Configure linux-armv4 --prefix=/app/openssl --cross-compile-prefix=arm-none-linux-gnueabi- && \
  31. make && \
  32. make install && \
  33. cd .. && \
  34. rm -rf openssl-1.1.1k openssl-1.1.1k.tar.gz
  35. # # 下载并编译安装Eclipse Paho MQTT C库
  36. RUN wget --no-check-certificate https://github.com/eclipse/paho.mqtt.c/archive/v1.3.12.tar.gz && \
  37. tar -xvf v1.3.12.tar.gz && \
  38. cd paho.mqtt.c-1.3.12 && \
  39. make CC=arm-none-linux-gnueabi-gcc AR=arm-none-linux-gnueabi-ar CFLAGS="-I/app/openssl/include" LDFLAGS="-L/app/openssl/lib" && \
  40. make install && \
  41. cd .. && \
  42. rm -rf paho.mqtt.c-1.3.12 v1.3.12.tar.gz
  43. # 清理
  44. RUN apt-get remove -y build-essential wget && \
  45. apt-get autoremove -y && \
  46. rm -rf /var/lib/apt/lists/* && \
  47. rm -rf /app/arm-2014.05
  48. # 设置工作目录
  49. WORKDIR /app/workspace

2 .创建docker容器

docker build -t name:v1.0 .

3 .生成库文件

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

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

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/AllinToyou/article/detail/282371
推荐阅读
相关标签
  

闽ICP备14008679号