openssl linux 交叉编译,关于openssl的交叉编译

最近有个项目用到openssl,于是去openssl的官方网站上下载了最新的版本,v1.1.1b版本。

解压之后,发现配置编译,可以使用./config或者./configure来完成。

网上也查了一些交叉编译的说明,经常在config之后,还要手动的修改makefile才行。这种就对我这种需要维护n种交叉编译环境的人来说,就比较头疼了。

按常理讲,openssl这种用途如此广的开源库,在交叉编译应该做得很好才对啊!

打开config脚本,查找了一下,其交叉编译是可以配置的,不需要配置之后,再手动改makefile。

./config no-asm shared --prefix=/home/xxx/git_base/openssl/release/himix100 cross_compile=/opt/xxx/aarch64-himix100-linux/bin/aarch64-himix100-linux- cc=gcc

只要修改环境变量cross_compile和cc,即可完成编译的配置。

但是接下来,进行hisiv500编译器的配置时,又遇到问题了。

其一是编译时,有很多告警,一看就是由于编译器是32位,但是代码中对位的操作却假定是64位,所以就会有可能溢出的告警

其二是,hisiv500编译器是不提供gnu c的ucontext库的,所以最后一些tools的链接会有问题。

继续查看config文件,没有找到如何配置系统的位宽。

这时,尝试常规的configure --help,原来configure里面是可以配置的。

./configure linux-generic32 no-asm shared no-async --prefix=/home/xxx/git_base/openssl/release/hisiv500/ cross_compile=/opt/xxx/arm-hisiv500-linux/bin/arm-hisiv500-linux-uclibcgnueabi- cc=gcc

no-async的作用是不使用gnu的ucontext库

linux-generic32表示是32位操作系统

--prefix表示istall时的文件输出目录

如此一来,终于能够编译通过了。下一步,测试运行看看是否有问题吧!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
以下是在 Linux 上使用 OpenSSL 进行交叉编译的一般步骤: 1. 获取交叉编译工具链 您需要获取适用于您的目标体系结构的交叉编译工具链。这可以通过您的操作系统或第三方提供商进行获取。 2. 获取 OpenSSL 源代码 从 OpenSSL 官方网站下载最新版本的源代码,并将其解压缩到您的计算机上。 3. 配置 OpenSSL 在终端中导航到解压缩的 OpenSSL 目录,并运行以下命令: ``` ./Configure <options> --cross-compile-prefix=<prefix> ``` 其中,`<options>` 是您需要为 OpenSSL 配置指定的选项,以便在目标体系结构上进行编译。`<prefix>` 是您的交叉编译工具链的前缀。 例如,如果您的交叉编译工具链的前缀为 `arm-linux-gnueabi-`,您可以运行以下命令: ``` ./Configure linux-armv4 --cross-compile-prefix=arm-linux-gnueabi- ``` 4. 编译 OpenSSL 在终端中运行以下命令编译 OpenSSL: ``` make CC=<compiler> AR=<archiver> RANLIB=<ranlib> ``` 其中,`<compiler>` 是您的交叉编译工具链中的编译器,`<archiver>` 是您的交叉编译工具链中的静态库归档器,`<ranlib>` 是您的交叉编译工具链中的 ranlib 工具。 例如,如果您的交叉编译工具链的前缀为 `arm-linux-gnueabi-`,您可以运行以下命令: ``` make CC=arm-linux-gnueabi-gcc AR=arm-linux-gnueabi-ar RANLIB=arm-linux-gnueabi-ranlib ``` 5. 安装 OpenSSL 在终端中运行以下命令安装 OpenSSL: ``` make install DESTDIR=<install_dir> ``` 其中,`<install_dir>` 是您要安装 OpenSSL 的目录。 例如,如果您要将 OpenSSL 安装到 `/usr/local/openssl`,您可以运行以下命令: ``` make install DESTDIR=/usr/local/openssl ``` 完成这些步骤后,您应该能够在您的目标体系结构上运行 OpenSSL

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值