常懷感恩之心
——魯迅
0、預置條件
這里已假定你已經成功安裝了海思平臺的交叉編譯環境,并能成功編譯出海思平臺kernel。
小技巧:
可以通過“在shell輸入‘arm-’并使用Tab按鍵來看是否有補全命令列表”來快速確認。
本資料將以arm-hisiv300-linux平臺為例。
1、下載openssl源碼
官網下載openssl源碼:點這里,本文檔編寫時最新穩定版本是1.1.1系列,所以下載了openssl-1.1.1c.tar.gz
2、 執行configure腳本
進入解壓后的openssl根目錄,執行:
./config no-asm no-async shared --prefix=/home/alex/openssl/ --cross-compile-prefix=arm-hisiv300-linux-
- no-asm 在交叉編譯過程中不使用匯編代碼代碼加速編譯過程
- no-async 沒有提供GNU C的ucontext庫,避免如下報錯:
./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 生成靜態鏈接庫
- --prefix 指定生成lib include bin目錄的路徑,不修改此項則默認為OPENSSLDIR目錄
3、 執行make
make
如果編譯報錯,并提示"m64"字樣報錯信息,多半是交叉編譯器不支持m64選項。解決辦法:
修改Makefile ,若有-m32或-m64 字段,直接刪除即可
4、 執行make install
make install
完成安裝后,你可以在/home/alex/openssl/發現include和lib。其中include包含頭文件集合,lib是生成的靜態庫(.a.1.1)和動態庫文件(.so.1.1)。