openssl移植到32位 ARM Linux

openssl簡介

????OpenSSL 是一個安全套接字層密碼庫,囊括主要的密碼算法、常用的密鑰和證書封裝管理功能及SSL協(xié)議,并提供豐富的應(yīng)用程序供測試或其它目的使用。

開發(fā)環(huán)境

  Ubuntu 16.04

  arm-hisiv200-linux-gnueabi

  開發(fā)環(huán)境不一定是我這配置,只要是linux操作系統(tǒng),和ARM對應(yīng)的交叉工具鏈就可以。

目標(biāo)環(huán)境

 華為海思

移植步驟

1.從OpenSSL官網(wǎng)下載最新源碼 openssl-1.0.2l.tar.gz。

2.執(zhí)行下面命名解壓縮:

tar zxvf openssl-1.0.2l.tar.gz

3.進入剛解壓的目錄cd openssl-1.0.2l/,執(zhí)行下面指令,做相應(yīng)的配置:

setarch i386 ./config no-asm shared --prefix=$(pwd)/__install

????no-asm: 是在交叉編譯過程中不使用匯編代碼代碼加速編譯過程,原因是它的匯編代碼是對arm格式不支持的。

????shared :生成動態(tài)連接庫。

????--prefix :指定make install后生成目錄的路徑,不修改此項則默認為OPENSSLDIR目錄(/usr/local/ssl)。

? ? ?setarch i386:聲明生成的是32位CPU,如果是64位CPU則去除該部分。

 4.修改Makefile:

CC= /home/public/zx902/arm-linux-gnueabi/bin/arm-linux-gnueabi-gcc (此處交叉工具鏈用絕對路徑,當(dāng)然也可以將路勁添加到環(huán)境變量就只需寫工具鏈即可:CC= arm-linux-gnueabi-gcc)

刪除 CFLAG= 中的-m64

AR= /home/public/zx902/arm-linux-gnueabi/bin/arm-linux-gnueabi-ar $(ARFLAGS) r

RANLIB= /home/public/zx902/arm-linux-gnueabi/bin/arm-linux-gnueabi-ranlib

NM= /home/public/zx902/arm-linux-gnueabi/bin/arm-linux-gnueabi-nm

SHARED_LDFLAGS=

 5.執(zhí)行下面命令,編譯OpenSSL庫:

make

????6.執(zhí)行下面命令,將編譯好的庫文件拷貝到指定目錄:

make install

????當(dāng)前目錄下的__install目錄下生成了頭文件和庫文件。

????7.注意

在項目的Makefile文件里頭加入openssl的頭文件和庫文件的聲明,此時需要注意引用庫的順序為:-lssl -lcrypto,如果為 -lcrypto -lssl就會編譯錯誤。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

友情鏈接更多精彩內(nèi)容