《开发板 —— 交叉编译移植openssl、curl、mosquitto》
1.移植openssl
1.下载openssl,我这边下载的是openssl-3.3.1,下载后在linux中解压。
2. 配置编译安装(以下相关目录对应位置是随便写的,需要根据实际替换)
#./config no-asm --prefix=/home/3520/software/openssh-server/package --cross-compile-prefix=arm-hisiv400-linux- no-asm 在交叉编译过程中不使用汇编代码代码加速编译过程。 no-shared 生成静态链接库。 --prefix 指定生成lib include bin目录的路径,不修改此项则默认为OPENSSLDIR目录。 -cross-compile-prefix指定编译器 #make #make install
报错:
如果编译报错,并提示"m64"字样报错信息,多半是交叉编译器不支持m64选项。解决办法:
修改Makefile ,若有-m32或-m64 字段,直接删除即可。
2.移植curl
1.下载curl,我这边下载的是curl-8.9.1,下载后在linux中解压。
2.配置编译安装(以下相关目录对应位置是随便写的,需要根据实际替换)
# ./configure --prefix=/home/xxxg/test/https_mqtt/curl-8.9.1/build --host=arm-linux-gnueabihf --with-ssl=/home/xxx/test/https_mqtt/openssl-3.3.1/build # make # make instll
备注:--with-ssl对应的是opensslinstall后的lib以及include的位置。
3.移植mosquitto
1.下载mosquitto,我这边下的是mosquitto-2.0.18,下载后在linx中解压。
2.修改Makefile
屏蔽图中的相关代码。
打开config.mk
WITH_CJSON:=no //我不需要cjson,所以选no WITH_SRV:=no CFLAGS += -I /opt/mqtt-lib/openssl/ssl/include LDFLAGS += -L/opt/mqtt-lib/openssl/ssl/lib -lssl -lcrypto
执行 make CC=gcc (这边我默认就是交叉编译工具链,如果不是gcc修改成自己对应的交叉编译工具链)
make install