1. 编译openssl库
-
解压openssl-1.1.1h.tar.gz (其他官网下载的版本步骤应该差不多,此处以1.1.1h为例)
-
以此执行以下命令,其中 –prefix为自定义安装目录 –openssldir为自定义配置文件目录 可根据实际情况修改
CC和CXX对应gcc/g++交叉编译链,如果使用默认gcc可不配置
#进入到目录下
cd openssl-1.1.1h
#生成makefile文件
./config no-asm shared --prefix=/home/vmuser/mqtt/openssl --openssldir=/home/vmuser/mqtt/openssl/ssl CC=arm-linux-gnueabihf-gcc CXX=arm-linux-gnueabihf-g++
#添加依赖
make depend
#编译
make
#安装
make install
在配置的openssl安装目录下找到lib目录,有生成的库文件libcrypto.so.1.1、libssl.so.1.1和软链接libcrypto.so、libssl.so
注意: 若执行编译时报错 "not find -m64"之类的错误信息,则手动修改生成makefile文件,将其中-m64删掉后重新make即可。
2.编译paho库
- 访问github下载地址https://github.com/eclipse/paho.mqtt.c, 下载paho.mqtt.c源码
- 示例下载的是paho.mqtt.c-1.3.13.tar.gz
- 解压后,修改对应的makefile, 在"DOXYGEN_COMMAND"之后添加下面两行,其实意思就是之前编译的openssl的include和lib路径
CFLAGS += -I/home/vmuser/mqtt/openssl/include
LDFLAGS += -L/home/vmuser/mqtt/openssl/lib -lrt
- 如果是交叉编译,则还需要添加一行,具体路径为实际交叉编译链路径
CC=arm-linux-gnueabihf-gcc
- 保存后,执行以下命令编译
make clean
make
- 编译完成后可以在build/output目录下找到编译出来的库