10

为 linux arm-v5te-linux-gnueabi 工具链交叉编译 openssl。我有我试过的版本 openssl-0.9.8r

./Configure --prefix=/usr --openssldir=/usr/sbin threads zlib shared no-asm linux-armv4

export CROSS_COMPILE=arm-v5te-linux-gnueabi-

但无济于事。

我非常需要将其交叉编译为 openssl 二进制文件的基本步骤。我已经在链接中尝试了多个建议,因此迫切需要提出一个新问题。

请帮忙

4

3 回答 3

12

这个有效:

./Configure linux-generic32 shared  -DL_ENDIAN --prefix=/home --openssldir=/home
make CC=arm-v4t-linux-gnueabi-gcc RANLIB=arm-v4t-linux-gnueabi-ranlib LD=arm-v4t-linux-gnueabi-ld MAKEDEPPROG=arm-v4t-linux-gnueabi-gcc PROCESSOR=ARM
于 2013-04-03T09:25:46.363 回答
10

我遇到了同样的问题,写了一本关于如何交叉编译openssl for arm的手册。我希望这本手册可以给你一些想法:

这个过程非常简单。在本手册中,我们将给出一个在 Ubuntu Linux 系统中交叉编译 OPENSSL for ARM 架构的示例。

  1. 交叉编译器

您将需要适用于 ARM 架构的 GNU C/C++ 编译器:

$ sudo apt-get install gcc-4.8-arm-linux-gnueabihf g++-4.8-arm-linux-gnueabihf

  1. openssl 源代码(1.1.1 版)

我们将构建的 openssl 位于https://github.com/openssl/openssl

$ git clone https://github.com/openssl/openssl.git

  1. 配置

导航到 openssl 文件夹,然后执行 ./configure,如下所示:

$ ./配置 linux-armv4 --prefix=/usr/local/openssl/ --openssldir=/usr/local/openssl 共享

此配置设置目标平台 linux-armv4,这是此 openssl 支持的唯一可用 ARM 平台。--prefix=/usr/local/openssl 告诉放置安装文件的位置。--openssldir=/usr/local/openssl 定义了 openssl 安装的根目录。shared 使编译器生成 .so 库文件。文件夹 openssl 下的文件 INSTALL 包含 ./Configure 的参数。

  1. 汇编

$ 使 CC=arm-linux-gnueabihf-gcc-4.8

CC 告诉使用什么交叉编译器。默认编译器是 gcc。

  1. 安装

$ 进行安装

  1. 输出

安装后会在/usr/local/openssl下找到以下文件和文件夹

$ ls /usr/local/openssl

垃圾桶

ct_log_list.cnf

包括

杂项

openssl.cnf.dist

共享证书

ct_log_list.cnf.dist

openssl.cnf

私人的

  1. 结尾

确保为 ARM 构建可执行二进制文件:

$文件/usr/local/openssl/bin/openssl

install-arm/bin/openssl:ELF 32 位 LSB 可执行文件,ARM,EABI5 版本 1 (SYSV),动态链接,解释器 /lib/ld-linux-armhf.so.3,用于 GNU/Linux 3.2.0,BuildID [sha1]=a23306c9c8bd553183fc20a37a60dcac8291da91,未剥离

如果您看到与上图类似的内容,则您已成功交叉编译了适用于 ARM 系统的 openssl。

于 2017-04-10T02:53:10.387 回答
0
./Configure linux-armv4 --cross-compile-prefix=arm-v5te-linux-gnueabi- --prefix=/usr
make
于 2021-05-14T05:29:14.973 回答