操作環境:Ubuntu20.04
IDE工具:Clion2020.2
curl下載地址:https://curl.se/download/
openssl下載地址:https://openssl-library.org/source/old/index.html
直接交叉編譯curl會報錯找不到openssl,所以需要先交叉編譯openssl
1. 交叉編譯openssl
在openssl
源碼文件夾建立腳本build.sh
,其中cross-compile-prefix
填入交叉編譯工具鏈的前綴(包括前面的絕對路徑),然后在這個openssl
路徑下運行build.sh
即可。
# 設置編譯文件夾、安裝文件夾build_dir=$PWD/buildinstall_dir=$PWD/dirmkdir -p $build_dircd $build_dir# 清除之前的編譯內容make clean../config no-asm shared no-async \--prefix=$install_dir \--cross-compile-prefix=/usr/local/crosstoolchains/gcc-linaro-7.3.1-2018.05-x86_64_aarch64-linux-gnu/bin/aarch64-linux-gnu-# 遞歸替換當前目錄及子目錄所有 Makefile 中的 -m64find . -name "Makefile" -exec sed -i 's/-m64//g' {} \;# 編譯并安裝make -j $(nproc)make install
運行完成,openssl源碼文件夾內會出現build
和dir
文件夾,所有的編譯內容會存放在build
文件夾,最終編譯出來的庫文件、可執行文件被安裝到了dir
文件夾里面
2. 交叉編譯curl
- 設置clion的交叉編譯工具鏈
- 接下來設置
cmake選項
,將以下的兩條內容都放在cmake選項
里面即可,其中-DOPENSSL_ROOT_DIR
是找安裝openssl
的根目錄,也就是上一步剛剛編譯出來的openssl
的安裝文件夾,-DCMAKE_INSTALL_PREFIX
決定curl
安裝到哪里。
-DOPENSSL_ROOT_DIR=/home/xjgc/test/openssl-1.1.1w/dir
-DCMAKE_INSTALL_PREFIX=./target
- 點擊
curl
文件夾中的CMakeLists.txt
,右鍵加載cmake項目,并選擇curl
進行編譯
如果在cmake-build-debug
文件夾下執行make install
,那么將會被安裝到我們指定的安裝路徑(-DCMAKE_INSTALL_PREFIX參數指定的)