我遇到了同樣的問題,寫了如何交叉編譯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