交叉編譯openssl/curl支援SSL功能
阿新 • • 發佈:2018-12-12
1.開發環境
1)ARM開發板(Cortex A8 ARMv7a ) 和 嵌入式Linux作業系統 2)交叉編譯工具 arm-linux-gnueabihf-gcc 3)openssl和libcurl原始碼(我使用的版本為openssl-1.0.2p.tar.gz,curl-7.60.0.tar.gz)
2.交叉編譯openssl
進入openssl-1.0.2p.tar.gz的解壓目錄後,執行以下命令:
./Configure --prefix=/usr/local/src/arm-linux/openssl --cross-compile-prefix=arm-linux-gnueabihf- no-asm shared linux-armv4 -march=armv7-a -D__ARM_MAX_ARCH__=7 make make install
引數說明:no-asm是在交叉編譯過程中不使用匯編程式碼程式碼加速編譯過程.原因是它的彙編程式碼是對arm格式不支援的,shared生成動態連線庫。prefix是openssl的安裝目錄。安裝完成後在這個目錄下會有四個安裝目錄:bin include lib ssl 需要注意的是-march後面對應的核心一定要是自己的arm的型號,我這裡填的是armv7-a,若是填錯arm型號不支援執行make過程中會出錯,會給出一堆型號你選擇自己對應的即可。
將指定安裝目錄下–prefix 的lib庫 /usr/local/src/arm-linux/openssl/lib/libssl.so.1.0.0 庫拷貝到開發板的/lib目錄下
3.交叉編譯curl
進入curl-7.60.0.tar.gz的解壓目錄後,執行以下命令進行編譯引數配置:
env LDFLAGS=-R/usr/local/src/arm-linux/openssl/lib ./configure --prefix=/usr/local/src/arm-linux/curl CC=arm-linux-gnueabihf-gcc --host=arm-linux --with-ssl=/usr/local/src/arm-linux/openssl
-with-ssl=/usr/local/src/arm-linux/openssl 預設關閉, 這個就是開啟ssl, 並指定交叉編譯用的openssl庫
make
make install
將指定安裝目錄下–prefix 的lib庫 /usr/local/src/arm-linux/curl/lib/libcurl.so.4.5.0 庫拷貝到開發板的/lib目錄下即可。