openssl三方库交叉编译


一、前言

项目需要将openssl三方库编译成在arm板子上能跑的AArch64格式,踩了一些坑,做个笔记一来方便以后忘记查阅,二是希望能帮助其他小伙伴能少走些弯路。


二、源码下载

https://www.openssl.org/source 官网下载所需源码版本。
解压完目录内容如下,版本不同可能有略微差异
在这里插入图片描述

三、编译

笔者编译环境为Ubuntu18.04虚拟机环境,因项目上安装过许多其他的三方库,并不能保证你按照下述操作步骤一定能够编译通过。

1、X86版本

./config
make -j4
make install DESTDIR=/home/hce/workspace/openssl

X86版本编译过程非常顺利,安装完毕后,在/home/hce/workspace/openssl/usr/local中可以看到头文件和库的文件夹,在lib中可以看到.a和.so的库都编译出来了,使用 readelf -h libssl.a 或者 readelf -h libssl.so 指令看库的运行平台。
在这里插入图片描述

2、ARM版本

编译前记得将x86的版本删除 make clean , install路径里的直接删掉

2.1、交叉编译工具环境变量配置

编译ARM版本前首先检查你的交叉编译工具链路径是否在环境变量里面,需要注意要指定到gcc g++的上层,通过echo $PATH指令查看,例如我的工具链是

/home/tools/gcc-arm-9.2-2019.12-x86_64-aarch64-none-linux-gnu/bin/aarch64-none-linux-gnu-gcc

就把/home/tools/gcc-arm-9.2-2019.12-x86_64-aarch64-none-linux-gnu/bin路径加到环境变量

export PATH=$PATH:/home/tools/gcc-arm-9.2-2019.12-x86_64-aarch64-none-linux-gnu/bin

验证是否成功可以在当前终端输入交叉编译的gcc 按tab看是否能够补全,如果可以说明添加是正常的

关于环境变量的配置请参考此文:https://blog.csdn.net/weixin_48896613/article/details/127170565

2.2、openssl配置

打开config文件,添加一句
在这里插入图片描述

2.3、编译

./config --cross-compile-prefix=aarch64-none-linux-gnu-
make -j4
make install DESTDIR=/home/hce/workspace/openssl

此处 --cross-compile-prefix= 后面的参数为你的交叉编译工具的前缀

使用和x86相同的方式看编译出的.a .so库
在这里插入图片描述
至此,交叉编译成功。

四、总结

openssl交叉编译配置总体还是比较简单的三方库,配置好交叉编译工具的环境变量和config文件一路畅通无阻,希望本篇内容对你有些帮助。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值