gmssl的交叉編譯

2021-08-25 17:12:00 字數 804 閱讀 3602

參考:

最近要在arm裝置上使用國密sm2、sm3演算法,經了解,gmssl(openssl分支)能夠支援,而且最新的openssl-1.1.1預覽版也開始支援上述國密演算法。

此前在ubuntu上交叉編譯過openssl-1.0.2k,使用如下指令碼實現:

./config --prefix=/opt/openssl --cross-compile-prefix=arm-linux-gnueabihf- no-asm shared

sed -i "s/ -m64//g" makefile

make

make install

筆者所有開發環境均通過svn管控,包括庫檔案、工具等的建立過程,因此在用config生成makefile檔案後,使用指令碼自動刪除arm編譯器不支援的m64選項。

當使用同樣的方法編譯gmssl後,在裝置上生成秘鑰時出現執行時錯誤;openssl-1.1.1預覽版編譯後執行則是停止響應。

經過多方摸索,終於找到了原因所在:應使用configure配置目標平台!新的編譯指令碼如下:

./configure --prefix=/opt/openssl --cross-compile-prefix=arm-linux-gnueabihf- no-asm shared linux-armv4

make

make install

GMSSL 國密iPhone端編譯

每次編譯前最好重新開啟shell視窗,刪除原始碼目錄後,再複製乙份原始碼 進入目錄 cd gmssl原始碼目錄 設定編譯器 export cc clang arch armv7 設定工具鏈路徑 設定開發環境目錄 設定sdk export cross sdk iphoneos12.1.sdk 設定最小...

編譯 交叉編譯

交叉編譯含義 是指在乙個平台上生成另乙個平台上的可執行 同乙個體系結構可以執行不同的作業系統,同樣乙個作業系統也可以在不同的體系結構上執行 例 常說的x86 linux平台 指inter x86體系結構及linux for x86作業系統 x86 winnt平台 指inter x86體系結構及win...

交叉編譯(2) 交叉編譯鏈

什麼是交叉編譯鏈 明白了什麼是交叉編譯,那我們來看看什麼是交叉編譯鏈。首先編譯過程是按照不同的子功能,依照先後順序組成的乙個複雜的流程,如下圖 那麼編譯過程包括了預處理 編譯 彙編 鏈結等功能。既然有不同的子功能,那每個子功能都是乙個單獨的工具來實現,它們合在一起形成了乙個完整的工具集。同時編譯過程...