2013-03-21 156 views
4

交叉编译openssl for linux arm-v5te-linux-gnueabi工具链。 我有版本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 for linux arm-v5te-linux-gnueabi工具链

但无济于事。

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

请帮

回答

4

这一个工程:

./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 
+2

不错。您应该考虑将openssl升级到更新的版本,以便您可以使用./Configure linux-arm启用ARM优化。请参阅http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=676533 – 2013-04-03 12:36:46

+0

@ ChristopheVu-Brugier我们如何进一步在应用程序中使用它,因为我的问题在链接http://stackoverflow.com/questions/24671252/how-to-link-the-openssl-library-with-arm-cross-compiler帮助我解决这个问题 – amar 2014-07-11 05:47:21

3

我遇到了同样的问题,写了如何交叉编译OpenSSL,以便手臂手册。我希望本手册能给你一些想法:

该过程非常简单。在本手册中,我们将举例说明在Ubuntu Linux系统中交叉编译用于ARM架构的OPENSSL。

  1. 交叉编译

您需要的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的。