openssl交叉编译给android使用
交叉编译openssl需要在linux下编译。先下载ndk安装,下载openssl源码。然后执行如下命令编译。#ndk安装根目录export ANDROID_NDK_ROOT=/mnt/e/ndk/android-ndk-r14b#openssl代码根目录OPENSSL_DIR=/mnt/e/openssl/openssl-3.0.1cd $OPENSSL_DIRrm -rf ./outputmk
交叉编译openssl需要在linux下编译。先下载ndk安装,下载openssl源码。然后执行如下命令编译。
#ndk安装根目录
export ANDROID_NDK_ROOT=/mnt/e/ndk/android-ndk-r14b
#openssl代码根目录
OPENSSL_DIR=/mnt/e/openssl/openssl-3.0.1
cd $OPENSSL_DIR
rm -rf ./output
mkdir ./output
#设置编译的目标cpu类型,编译其他cpu类型的修改这两个参数
ARCH_NAME=android-arm
TOOL_CHAIN=arm-linux-androideabi-4.9
export PATH=$ANDROID_NDK_ROOT/toolchains/$TOOL_CHAIN/prebuilt/linux-x86_64/bin:$PATH
./Configure android-arm shared no-ssl2 no-ssl3 no-asm no-comp no-hw no-engine -D__ANDROID_API__=23 --openssldir=$OPENSSL_DIR/output --prefix=$OPENSSL_DIR/output
make -j8
编译报错解决:
1. 汇编指令.rodata不识别
crypto/ec/ecp_nistz256-armv4.S: Assembler messages:
crypto/ec/ecp_nistz256-armv4.S:9: Error: unknown pseudo-op: `.rodata'
make[1]: *** [Makefile:15166: crypto/ec/libcrypto-lib-ecp_nistz256-armv4.o] Error 1
解决办法:./Configure选项加上no-asm,表示不使用汇编
更多推荐
所有评论(0)