编译OpenSSL到 Android
今天研究怎么把OpenSSL编译成Android原生库,记录一下。
1 安装NDK
首先,你得有NDK,下载NDK,然后将其解压到一个地方就可以了。我安装NDK的目录是:
/Volumes/DATA/develop/android-ndk-r10d
2 初始化Android交叉编译工具
使用NDK的功能初始化一个Android的GCC工具:
export NDK=/Volumes/DATA/develop/android-ndk-r10d
$NDK/build/tools/make-standalone-toolchain.sh --platform=android-19 --toolchain=arm-linux-androideabi-4.6 --install-dir=`pwd`/android-toolchain-arm
可以根据大家的需求选择Android版本号和GCC版本,我这里选择的是Android 4.4和GCC4.6。
然后大家会在 android-toolchain-arm
目录下找到生成的交叉编译器
3 获取OpenSSL
使用Git可以获取最新代码
$ git clone git://git.openssl.org/openssl.git
当然在Windows上要对git进行配置
$ cd openssl
$ git config core.autocrlf false
$ git config core.eol lf
$ git checkout .
4 设置环境变量
需要设置一下环境变量,使用刚刚设置好的交叉编译器,
其实也很简单,改一下 PATH
就可以了
$ export PATH=/Volumes/DATA/develop/android-ndk-r10d/android-toolchain-arm/arm-linux-androideabi/bin:$PATH
$ export ANDROID_DEV=/Volumes/DATA/develop/android-ndk-r10d/platforms/android-19/arch-arm/usr
记得把上面的地址改成你的 android-toolchain-arm
地址
5 编译
最后一步是编译了
$ ./Configure android-armv7
$ make -j
-j
选项的意思是,尽可能的使用多的线程进行编译。
这么编译出来的是静态库,也就是包含 libssl.a
和 libcrypto.a
。
如果想编译成动态库,./Configure
的时候添加 shared
选项即可
其实编译很简单。
转载请注明来源:http://www.tianwaihome.com/2015/05/compile-openssl-for-android.html。