openssl篇——5.openssl交叉编译过程实战

说明
  本文章旨在总结备份、方便以后查询,由于是个人总结,如有不对,欢迎指正;另外,内容大部分来自网络、书籍、和各类手册,如若侵权请告知,马上删帖致歉。
  QQ 群 号:513683159 【相互学习】
内容来源
  openssl官网
  wiki—openssl编译构建OpenSSL库的交叉编译(arm和mips)

  常规构建过程,根据需要可查看前篇添加编译选项

Linux下构建过程

Step1.openssl下载

  执行命令:git clone https://github.com/openssl/openssl.git

Step2.交叉编译器下载

  根据自己主板下载对应交叉编译器。

Step3.运行配置文件

  执行命令:./Configure no-asm shared --prefix=/usr/local/cross_compile --cross-compile-prefix=/home/xsndz/Desktop/arm-openwrt-linux/bin/arm-openwrt-linux- --openssldir=/usr/local/cross_compile/ssl '-Wl,-rpath,/etc/libs'
  结果:生成Makefile文件
  选项说明:(根据实际情况选择并修改对应参数)
    ①no-asm:不使用汇编程序加速编译过程,因为汇编程序对arm格式不支持。
    ②shared:即生成静态库也生成动态库,no-share不生成动态库,仅有静态库
    ③--prefix=:指定OpenSSL安装的顶部目录
    ④--openssldir=:指定OpenSSL配置文件的目录,以及默认的证书和密钥存储库
    ⑤--cross-compile-prefix=:指定交叉工具链,添加指定的前缀到binutils组件。若为相对路径,需配置对应的环境变量。
    ⑥'-Wl,-rpath,/etc/libs':指定链接器运行时查找库的路径。

Step4.查看并修改Mafile文件
1.  PLATFOR=             linux-x86_64修改为arm
2.  删除-m64编译选项       可通过/m64进行查找
Step5.编译

  执行命令:make -j8
  结果:生成crypto、ssl的静态库和动态库、apps中生成openssl可执行文件等。

Step6.查看可执行文件是否格式正确

  进入apps文件夹下,执行命令:readelf -h openssl
  可查看Machine: ARM为刚才设置的arm平台

Step7.将动态库与可执行文件传入主板中

  根据实际情况传入对应主板的文件路径。
  动态库:libssl.so.3libcrypto.so.3
  可执行文件:openssl
  根据实际情况可使用软链接来指定动态库使之兼容。

Step8.运行可执行文件

  若前面设置了'-Wl,-rpath,/etc/libs'选项,则可执行运行可执行文件。
  若未设置,可能会没找到对应的文件可通过配置环境变量使之找到动态库,如:
    export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/etc/libs

Step9.openssl的帮助选项

  可查看openssl的命令,可执行:./openssl -help

Step10.查看版本
./openssl version 
OpenSSL 3.1.0-dev  (Library: OpenSSL 3.1.0-dev ) 

  其他自行测试

其他选择

  1️⃣交叉编译器的其他设置方法:
    (1)Step3.中--cross-compile-prefix=/home/xsndz/Desktop/arm-openwrt-linux/bin/arm-openwrt-linux-可修改为--cross-compile-prefix=arm-openwrt-linux-
    前提是:虚拟机需配置对应的环境变量,如:export PATH=$PATH:/home/xsndz/Desktop/arm-openwrt-linux/bin/,
    环境变量设置有多种方法这边不做介绍,目的就是为编译器能够在执行时找到对应的软件包。
    (2)也可在配置时,直接通过编译参数传入CC、CXX等脚本的环境变量,设置交叉编译器的相关选项。
  其他可查看openssl篇——3.编译构建相关描述了解更多构建信息

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值