前言

最近需要用到Mqtt协议,但是mqtt又得依赖openssl,所有就先移植opensll库了,这里分享下移植的过程
一、克隆Openssl库
git clone https://github.com/openssl/openssl/tags
二、交叉编译成arm64架构的库
将压缩包上传至开发板解压
tar -xvzf openssl-1.1.1t.tar.gz
如果没有安装交叉编译链的需要先安装
sudo apt update
sudo apt install gcc-aarch64-linux-gnu g++-aarch64-linux-gnu
进入openssl-1.1.1t目录

生成Makefile文件
./config no-asm shared CROSS_COMPILE=aarch64-linux-gnu- --prefix=/home/forlinx/Public/openssl
相关参数描述:
其中"prefix"是安装目录,"openssldir"是配置文件目录,"shared"作用是生成动态链接库(即.so库) 。
CROSS_COMPILE指定交叉编译器的前缀
如果编译有问题,配置命令加上no-asm(表示不使用汇编代码),no-asm是在交叉编译过程中不使用汇编代码加速编译过程,原因是它的汇编代码对arm平台不支持。
打开Makefile文件,注释-m64相关的信息,因为咱们的arm-linux-gcc 是32位的

执行编译
make depend
make
安装
make install

显示这样就是安装成功了
压缩lib
cd /openssl/lib
tar -czf libopenssl.tar.gz ./*
拷贝到usr/lib目录下解压缩
cd /usrlib
tar -xzf libopenssl.tar.gz
移植完成