如何使用Android NDK 工具链编译openssl

1、gcc 的sysroot 选项

  sysroot 选项设定 gcc 在编译源码的时候,寻找头文件和库文件的根目录。可以这样调用 gcc --sysroot=/tmp/gcc-arm (及其他选项)。NDK 根目录下的 platforms 目录中的各个子目录的路径都可以直接传给 gcc --sysroot=<dir>。为了简化操作,可以在linux系统的命令终端执行以下命令,设置SYSROOT       环境变量,$NDK是ndk的根目录。

S Y S R O O T = NDK/platforms/android-8/arch-arm

2、ndk编译
$NDK/build/tools/make-standalone-toolchain.sh –platform=android-21 –install-dir=/tmp/my-android-toolchain [ –arch=x86 ]

   将会在/tmp/my-android-toolchain 中创建 sysroot 环境和 工具链。--arch 选项选择目标程序的指令架构,默认是为 arm。

   如果不加 --install-dir 选项,则会创建 /tmp/ndk/<toolchain-name>.tar.bz2。

   (执行 make-standalone-toolchain.sh --help 查看帮助。)

   运行之后,这样使用:

   $ export PATH=/tmp/my-android-toolchain/bin:$PATH

   $ export CC=arm-linux-androideabi-gcc

   $ export CXX=arm-linux-androideabi-g++

   $ export CXXFLAGS="-lstdc++"

  执行完以上设置环境变量的命令之后,就可以直接编译了(例如,执行 ./configure 然后 make 得到的就是 arm 程序了)。不用再设定 sysroot, CC 了。而且,可以使用 STL,异常,RTTI。

问题:如何使用交叉编译工具链编译openssl
1、按照上述步骤设置编译工具为arm-linux-androideabi-gcc
2、由于编译openssl[openssl-1.0.2k]需要指定平台,首先需要配置平台
./Configure android-armv7
3、make [编译]
4、make install [将目标文件安装到指定的目录下]

发布了16 篇原创文章 · 获赞 6 · 访问量 3万+

猜你喜欢

转载自blog.csdn.net/qq_41163331/article/details/82142183