我遇到了同样的问题,写了如何交叉编译OpenSSL,以便手臂手册。我希望本手册能给你一些想法:
该过程非常简单。在本手册中,我们将举例说明在Ubuntu Linux系统中交叉编译用于ARM架构的OPENSSL。
- 交叉编译
您需要的GNU C/C++的ARM架构的编译器:
$ sudo易于得到安装gcc-4.8-ARM-Linux的gnueabihf G ++ - 4.8-臂-Linux的gnueabihf
- OpenSSL的源代码(版本1.1.1)
我们将构建在OpenSSL可在https://github.com/openssl/openssl
$ GIT中克隆https://github.com/openssl/openssl.git
- 配置
导航到OpenSSL的文件夹,并执行的./configure如如下:
$的./configure Linux的ARMV4前缀=的/ usr /本地/ OpenSSL的/ --openssldir =的/ usr /本地/ OpenSSL的共享
该配置设置了目标平台linux-armv4,该平台是此openssl支持的唯一可用ARM平台。 --prefix =/usr/local/openssl告诉安装文件的位置。 --openssldir =/usr/local/openssl定义openssl安装的根目录。 shared让编译器生成.so库文件。文件夹openssl下的INSTALL文件包含./Configure的参数。
- 编译
$使CC =臂-Linux的gnueabihf-GCC-4.8
CC告诉什么交叉编译器使用。默认的编译器是gcc。
- 安装
$ make install的
- 输出
安装完毕后,你会发现下面在/ usr /本地/ OpenSSL的文件和文件夹
$ LS的/ usr /本地/ OpenSSL的
斌
ct_log_list.cnf
包括
其它
openssl.cnf.dist
份额证书
ct_log_list.cnf.dist
LIB
openssl.cnf中
私人
- 结束
确保可执行的二进制文件是专门为ARM:
$文件在/ usr /本地/ OpenSSL的/ bin中/ OpenSSL的
安装臂/斌/ OpenSSL的:ELF 32位LSB的可执行文件,ARM,EABI5版本1(SYSV),动态链接的,解释器/lib/ld-linux-armhf.so.3,一种用于GNU/Linux的3.2.0,BuildID [SHA1] = a23306c9c8bd553183fc20a37a60dcac8291da91,不剥离
如果你看到的上面显示类似的东西,你已经成功交叉编译的ARM系统OpenSSL的。
不错。您应该考虑将openssl升级到更新的版本,以便您可以使用./Configure linux-arm启用ARM优化。请参阅http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=676533 – 2013-04-03 12:36:46
@ ChristopheVu-Brugier我们如何进一步在应用程序中使用它,因为我的问题在链接http://stackoverflow.com/questions/24671252/how-to-link-the-openssl-library-with-arm-cross-compiler帮助我解决这个问题 – amar 2014-07-11 05:47:21