常懷感恩之心
——魯迅
0辛孵、預(yù)置條件
這里已假定你已經(jīng)成功安裝了海思平臺(tái)的交叉編譯環(huán)境少辣,并能成功編譯出海思平臺(tái)kernel讲婚。
小技巧:
可以通過(guò)“在shell輸入‘a(chǎn)rm-’并使用Tab按鍵來(lái)看是否有補(bǔ)全命令列表”來(lái)快速確認(rèn)另锋。
本資料將以arm-hisiv300-linux平臺(tái)為例总处。
1狈惫、下載openssl源碼
官網(wǎng)下載openssl源碼:點(diǎn)這里,本文檔編寫(xiě)時(shí)最新穩(wěn)定版本是1.1.1系列鹦马,所以下載了openssl-1.1.1c.tar.gz
2胧谈、 執(zhí)行configure腳本
進(jìn)入解壓后的openssl根目錄,執(zhí)行:
./config no-asm no-async shared --prefix=/home/alex/openssl/ --cross-compile-prefix=arm-hisiv300-linux-
- no-asm 在交叉編譯過(guò)程中不使用匯編代碼代碼加速編譯過(guò)程
- no-async 沒(méi)有提供GNU C的ucontext庫(kù)荸频,避免如下報(bào)錯(cuò):
./libcrypto.so: warning: gethostbyname is obsolescent, use getnameinfo() instead.
./libcrypto.so: undefined reference to `getcontext'
./libcrypto.so: undefined reference to `setcontext'
./libcrypto.so: undefined reference to `makecontext'
- no-shared 生成靜態(tài)鏈接庫(kù)
- --prefix 指定生成lib include bin目錄的路徑菱肖,不修改此項(xiàng)則默認(rèn)為OPENSSLDIR目錄
3、 執(zhí)行make
make
如果編譯報(bào)錯(cuò)旭从,并提示"m64"字樣報(bào)錯(cuò)信息稳强,多半是交叉編譯器不支持m64選項(xiàng)。解決辦法:
修改Makefile ,若有-m32或-m64 字段和悦,直接刪除即可
4退疫、 執(zhí)行make install
make install
完成安裝后,你可以在/home/alex/openssl/發(fā)現(xiàn)include和lib鸽素。其中include包含頭文件集合褒繁,lib是生成的靜態(tài)庫(kù)(.a.1.1)和動(dòng)態(tài)庫(kù)文件(.so.1.1)。