日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

openssl NDK 交叉编译

發布時間:2025/3/15 编程问答 21 豆豆
生活随笔 收集整理的這篇文章主要介紹了 openssl NDK 交叉编译 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

移植openssl到android

創建工作目錄,并進入

12mkdir androidcd android

下載源碼

12wget https://www.openssl.org/source/openssl-1.1.0e.tar.gztar xfz openssl-1.1.0e.tar.gz

生成交叉編譯工具鏈

1$ANDROID_NDK/build/tools/make-standalone-toolchain.sh --arch=arm --install-dir=./toolchain

導出環境變量(armeabi)

1234567891011121314151617export ANDROID_HOME=`pwd`export TOOLCHAIN=$ANDROID_HOME/toolchainexport CROSS_SYSROOT=$TOOLCHAIN/sysrootexport PATH=$TOOLCHAIN/bin:$PATHexport TOOL=arm-linux-androideabiexport CC=$TOOLCHAIN/bin/${TOOL}-gccexport CXX=$TOOLCHAIN/bin/${TOOL}-g++export LINK=${CXX}export LD=$TOOLCHAIN/bin/${TOOL}-ldexport AR=$TOOLCHAIN/bin/${TOOL}-arexport RANLIB=$TOOLCHAIN/bin/${TOOL}-ranlibexport STRIP=$TOOLCHAIN/bin/${TOOL}-stripexport ARCH_FLAGS="-mthumb"export ARCH_LINK=export CFLAGS="${ARCH_FLAGS} -fpic -ffunction-sections -funwind-tables -fstack-protector -fno-strict-aliasing -finline-limit=64"export CXXFLAGS="${CFLAGS} -frtti -fexceptions"export LDFLAGS="${ARCH_LINK}"

編譯并安裝

1234567891011cd openssl-1.1.0e/./Configure android \--prefix=$TOOLCHAIN/sysroot/usr/local \--with-zlib-include=$TOOLCHAIN/sysroot/usr/include \--with-zlib-lib=$TOOLCHAIN/sysroot/usr/lib \zlib \ no-asm \ no-shared \ no-unit-testmake -j4make install

卸載

1make uninstall

armeabi-v7a

12345678910111213$ANDROID_NDK/build/tools/make-standalone-toolchain.sh --arch=arm --install-dir=./toolchainexport TOOL=arm-linux-androideabiexport ARCH_FLAGS="-march=armv7-a -mfloat-abi=softfp -mfpu=vfpv3-d16"export ARCH_LINK="-march=armv7-a -Wl,--fix-cortex-a8"./Configure android-armv7 \ --prefix=$TOOLCHAIN/sysroot/usr/local \ --with-zlib-include=$TOOLCHAIN/sysroot/usr/include \ --with-zlib-lib=$TOOLCHAIN/sysroot/usr/lib \zlib \no-asm \no-shared \no-unit-test

x86

12345678910111213$ANDROID_NDK/build/tools/make-standalone-toolchain.sh --arch=x86 --install-dir=./toolchainexport TOOL=i686-linux-androidexport ARCH_FLAGS="-march=i686 -msse3 -mstackrealign -mfpmath=sse"export ARCH_LINK=""./Configure android-x86 \ --prefix=$TOOLCHAIN/sysroot/usr/local \ --with-zi686lib-include=$TOOLCHAIN/sysroot/usr/include \ --with-zlib-lib=$TOOLCHAIN/sysroot/usr/lib \zlib \no-asm \no-shared \no-unit-test

何大仙提供的shell腳本

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586#!/bin/shif [! -f "openssl-1.1.0e.tar.gz" ]; thenwget https://www.openssl.org/source/openssl-1.1.0e.tar.gzfiif [! -d "openssl-1.1.0e" ]; then tar zxf openssl-1.1.0e.tar.gzfi# envif [-d "out/openssl" ]; thenrm -fr "out/openssl"fimkdir "out"mkdir "out/openssl"_compile() {SURFIX=$1TOOL=$2ARCH_FLAGS=$3ARCH_LINK=$4CFGNAME=$5ARCH=$6 if [! -d "out/openssl/${SURFIX}" ]; thenmkdir "out/openssl/${SURFIX}" fi if [! -d "toolchain_${SURFIX}" ]; then $ANDROID_NDK/build/tools/make-standalone-toolchain.sh --arch=${ARCH} --install-dir=./toolchain_${SURFIX} fi export ANDROID_HOME=`pwd` export TOOLCHAIN=$ANDROID_HOME/toolchain_${SURFIX} export CROSS_SYSROOT=$TOOLCHAIN/sysroot export PATH=$TOOLCHAIN/bin:$PATH export CC=$TOOLCHAIN/bin/${TOOL}-gcc export CXX=$TOOLCHAIN/bin/${TOOL}-g++ export LINK=${CXX} export LD=$TOOLCHAIN/bin/${TOOL}-ld export AR=$TOOLCHAIN/bin/${TOOL}-ar export RANLIB=$TOOLCHAIN/bin/${TOOL}-ranlib export STRIP=$TOOLCHAIN/bin/${TOOL}-strip export ARCH_FLAGS=$ARCH_FLAGS export ARCH_LINK=$ARCH_LINK export CFLAGS="${ARCH_FLAGS} -fpic -ffunction-sections -funwind-tables -fstack-protector -fno-strict-aliasing -finline-limit=64" export CXXFLAGS="${CFLAGS} -frtti -fexceptions" export LDFLAGS="${ARCH_LINK}" cd openssl-1.1.0e/./Configure ${CFGNAME} --prefix=$TOOLCHAIN/sysroot/usr/local --with-zlib-include=$TOOLCHAIN/sysroot/usr/include --with-zlib-lib=$TOOLCHAIN/sysroot/usr/lib zlib no-asm no-shared no-unit-testmake cleanmake -j4 #make installmake install_swmake install_ssldirs cd ..mv openssl-1.1.0e/libssl.a out/openssl/${SURFIX}/ mv openssl-1.1.0e/libcrypto.a out/openssl/${SURFIX}/}# arm_compile "armeabi" "arm-linux-androideabi" "-mthumb" "" "android" "arm"# armv7_compile "armeabi-v7a" "arm-linux-androideabi" "-march=armv7-a -mfloat-abi=softfp -mfpu=vfpv3-d16" "-march=armv7-a -Wl,--fix-cortex-a8" "android-armeabi" "arm"# arm64v8_compile "arm64-v8a" "aarch64-linux-android" "" "" "android64-aarch64" "arm64"# x86_compile "x86" "i686-linux-android" "-march=i686 -m32 -msse3 -mstackrealign -mfpmath=sse -mtune=intel" "" "android-x86" "x86"# x86_64_compile "x86_64" "x86_64-linux-android" "-march=x86-64 -m64 -msse4.2 -mpopcnt -mtune=intel" "" "android64" "x86_64"# mips_compile "mips" "mipsel-linux-android" "" "" "android-mips" "mips"# mips64_compile "mips64" "mips64el-linux-android" "" "" "linux64-mips64" "mips64"echo "done"

http://fucknmb.com/2017/05/24/openssl-NDK%E4%BA%A4%E5%8F%89%E7%BC%96%E8%AF%91/

總結

以上是生活随笔為你收集整理的openssl NDK 交叉编译的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。