編譯android版本openssl和curl

OPENSSL編譯步驟

源碼下載和解壓

wget https://www.openssl.org/source/old/1.1.1/openssl-1.1.1f.tar.gz
tar -zxvf openssl-1.1.1f.tar.gz

導(dǎo)入ndk環(huán)境變量

export ANDROID_NDK_HOME=/home/username/ndk/android-ndk-r20b
export PATH=$ANDROID_NDK_HOME/toolchains/llvm/prebuilt/linux-x86_64/bin:$ANDROID_NDK_HOME/toolchains/arm-linux-androideabi-4.9/prebuilt/linux-x86_64/bin:$PATH

編譯arm32位openssl

./Configure android-arm -D__ANDROID_API__=23 --prefix=/home/username/openssl/out/arm/
make clean
make & make install

編譯arm64位

./Configure android-arm64 -D__ANDROID_API__=23 --prefix=/home/username/openssl/out/arm64/
make clean
make & make install

--prefix路徑:必須先創(chuàng)建

參考鏈接

https://www.freesion.com/article/6742800401

CURL編譯

源碼下載和解壓

wget https://curl.se/download/curl-7.84.0.tar.gz
tar -xvzf curl-7.84.0.tar.gz

導(dǎo)入NDK編譯環(huán)境

export NDK=/home/username/ndk/android-ndk-r20b
export HOST_TAG=linux-x86_64 # 按照當(dāng)前設(shè)備環(huán)境來
export TOOLCHAIN=$NDK/toolchains/llvm/prebuilt/$HOST_TAG
export AR=$TOOLCHAIN/bin/aarch64-linux-android-ar
export AS=$TOOLCHAIN/bin/aarch64-linux-android-as
export CC=$TOOLCHAIN/bin/aarch64-linux-android29-clang
export CXX=$TOOLCHAIN/bin/aarch64-linux-android29-clang++
export LD=$TOOLCHAIN/bin/aarch64-linux-android-ld
export RANLIB=$TOOLCHAIN/bin/aarch64-linux-android-ranlib
export STRIP=$TOOLCHAIN/bin/aarch64-linux-android-strip

編譯curl

./configure --host aarch64-linux-android --with-pic --disable-shared
make

編譯支持https協(xié)議curl

# 將openssl編譯相關(guān)結(jié)果內(nèi)容拷貝至ndk路徑
cp -a /home/username/openssl/out/arm64/lib /home/username/ndk/android-ndk-r20b/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/

# 如果缺少相關(guān)openssl頭文件,將頭文件openssl/openssl-1.1.1f/include/openssl拷貝至ndk路徑下,r20b版本已經(jīng)包含,忽視本步驟
cp -a /home/username/openssl/openssl-1.1.1f/include/openssl /home/username/ndk/android-ndk-r20b/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include

編譯curl (支持https)

./configure --host aarch64-linux-android --with-pic --disable-shared --with-openssl="${TOOLCHAIN}/sysroot/usr"
make

輸出curl在當(dāng)前curl源碼路徑下src/curl

注意事項

在android 8.1系統(tǒng)上,如果要使用支持https的curl,必須先支持openssl

參考鏈接

https://curl.se/docs/install.html

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

推薦閱讀更多精彩內(nèi)容