交叉编译openssl for linux arm-v5te-linux-gnueabi工具链

时间:2013-03-21 03:40:12

标签: openssl arm cross-compiling

交叉编译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二进制文件。 我已经在链接上尝试了多个建议,因此迫切需要打开一个新问题。

请帮忙

3 个答案:

答案 0 :(得分:7)

这个有效:

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

答案 1 :(得分:4)

I encountered the same problem and wrote a manual for how to cross compile openssl for arm. I hope this manual can give you some idea:

The process is quite straightforward. In this manual we will give an example for cross compiling OPENSSL for ARM architecture in an Ubuntu Linux System.

  1. Cross compiler

You will need The GNU C/C++ compiler for ARM architecture:

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

  1. openssl source code (version 1.1.1)

The openssl we will build is available at https://github.com/openssl/openssl

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

  1. Configuration

Navigate into the openssl folder, and execute ./configure as follows:

$ ./Configure linux-armv4 --prefix=/usr/local/openssl/ --openssldir=/usr/local/openssl shared

This configuration sets the target platform linux-armv4 which is the only available ARM platform supported by this openssl. --prefix=/usr/local/openssl tells where to put the installation files. --openssldir=/usr/local/openssl defines the root directory of the openssl installation. shared makes the compiler to generate .so library files. The document INSTALL under folder openssl contains the parameters for ./Configure.

  1. Compilation

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

CC tells what cross-compiler to use. The default compiler is gcc.

  1. Installation

$ make install

  1. Output

After installation, you will find the following files and folders under /usr/local/openssl

$ ls /usr/local/openssl

bin

ct_log_list.cnf

include

misc

openssl.cnf.dist

share certs

ct_log_list.cnf.dist

lib

openssl.cnf

private

  1. End

make sure the executable binaries are built for ARM:

$ file /usr/local/openssl/bin/openssl

install-arm/bin/openssl: ELF 32-bit LSB executable, ARM, EABI5 version 1 (SYSV), dynamically linked, interpreter /lib/ld-linux-armhf.so.3, for GNU/Linux 3.2.0, BuildID[sha1]=a23306c9c8bd553183fc20a37a60dcac8291da91, not stripped

If you see something similar as what is shown above, you have successfully cross-compiled the openssl for the ARM system.

答案 2 :(得分:0)

./Configure linux-armv4 --cross-compile-prefix=arm-v5te-linux-gnueabi- --prefix=/usr
make