android-ndk-r16b编译OpenSSL for ARM32

CentOS7安装ndk-r16b

mkdir /root/android
cd /root/android
wget https://dl.google.com/android/repository/android-ndk-r16b-linux-x86_64.zip
unzip android-ndk-r16b-linux-x86_64.zip

安装dos2unix

yum -y install dos2unix

下载openssl源代码

mkdir /root/ssl
cd /root/ssl
wget https://www.openssl.org/source/openssl-1.1.0f.tar.gz
tar -zxvf openssl-1.1.0f.tar.gz
#获取Setenv-android.sh,我们需要这个脚本来给我们配置环境
cd /root/ssl/openssl-1.1.0f
wget https://wiki.openssl.org/images/7/70/Setenv-android.sh
# 注意这个文件是大写开头的,我们稍微修改一下名称,方便使用
mv Setenv-android.sh setenv-android.sh
#转换一下setenv-android.sh的文件格式
dos2unix setenv-android.sh

修改 setenv-android.sh配置

修改内容:
_ANDROID_NDK="android-ndk-r16b"
_ANDROID_EABI="arm-linux-androideabi-4.9"
_ANDROID_API="android-18"

设置环境变量

export ANDROID_NDK_ROOT=/root/android/android-ndk-r16b
source ./setenv-android.sh
#输出内容:
	ANDROID_NDK_ROOT: /root/android/android-ndk-r16b
	ANDROID_ARCH: arch-arm
	ANDROID_EABI: arm-linux-androideabi-4.9
	ANDROID_API: android-18
	ANDROID_SYSROOT: /root/android/android-ndk-r16b/platforms/android-18/arch-arm
	ANDROID_TOOLCHAIN: /root/android/android-ndk-r16b/toolchains/arm-linux-androideabi-4.9/prebuilt/linux-x86_64/bin
	FIPS_SIG: /root/ssl/openssl-1.1.0f-arm32/util/incore
	CROSS_COMPILE: arm-linux-androideabi-
	ANDROID_DEV: /root/android/android-ndk-r16b/platforms/android-18/arch-arm/usr
#创建编译后openssl安装目录
mkdir /root/ssl/openssl-output

注意啦!

由于ANDROID_SYSROOT: /root/android/android-ndk-r16b/platforms/android-18/arch-arm目录下没有usr/include头文件目录,这会在后面openssl编译中报错,简单处理办法是:
cd /root/android/android-ndk-r16b/sysroot/usr/include
cp -ar arm-linux-androideabi/asm .
cd  /root/android/android-ndk-r16b/platforms/android-18/arch-arm/usr
cp -ar /root/android/android-ndk-r16b/sysroot/usr/include .

配置编译openssl

./config no-shared no-ssl2 no-ssl3 no-comp no-hw no-engine --openssldir=/root/ssl/openssl-1.1.0f-arm32-out --prefix=/root/ssl/openssl-1.1.0f-arm32-out
#后面避免编译连接出现无法找到"stdio"的兼容错误,修改Makefile,在CFLAG和CFLAG_Q加上“-D__ANDROID_API__=18”
make depend
make
make install
编译安装后在/root/ssl/openssl-1.1.0f-arm32-out目录中就会出现:
	bin 存放openssl命令
	include 头文件
	lib 库文件
	share 文档一类的
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值