2013-03-21 94 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的。