交叉編譯openssl1.1.1a的時候遇到的問題,記錄一下,方便下次查找
一、下載源碼
1.打開openssl官網,下載openssl-1.1.1.tar.gz源碼包。
2.執行下面的命令解壓源碼包:
$ tar xvzf openssl-1.1.1.tar.gz
二、配置openssl
1.執行下面的命令配置工程
$ ./config no-asm shared no-async --prefix=$(pwd)/install --cross-compile-prefix=arm-linux-
其參數說明如下:
no-asm: 在交叉編譯過程中不使用匯編代碼代碼加速編譯過程;
shared: 生成動態連接庫。
no-async: 交叉編譯工具鏈沒有提供GNU C的ucontext庫
–prefix=: 安裝路徑
–cross-compile-prefix=: 交叉編譯工具
- 打開Makefile,刪除里面所有的-m64和-m32編譯選項。
三、編譯
1.執行make編譯工程;
2.執行make install,在源文件路徑會生成一個install文件。
自己編譯的時候使用的交叉編譯工具鏈有點特殊,是在每次編譯前運行一個shell來設置編譯所需的環境變量(CC、CXX、AR等),這個時候編譯可能會出問題,需要修改Makefile,注釋以下幾行:
#CC=$(CROSS_COMPILE)gcc #注釋掉
#CXX=$(CROSS_COMPILE)g++ #注釋掉
CPPFLAGS=
CFLAGS=-Wall -O3
CXXFLAGS=-Wall -O3
LDFLAGS=
EX_LIBS=
MAKEDEPEND=$(CROSS_COMPILE)gcc #不確定是否一定要注釋掉,驗證后再來說明
PERL=/usr/bin/perl
#AR=$(CROSS_COMPILE)ar #注釋掉
ARFLAGS= r
RANLIB=$(CROSS_COMPILE)ranlib #不確定是否一定要注釋掉,驗證后再來說明
RC= $(CROSS_COMPILE)windres #不確定是否一定要注釋掉,驗證后再來說明
RCFLAGS=