欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

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

程序员文章站 2022-03-05 12:13:23
...

1、gcc 的sysroot 选项

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

SYSROOT=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 [将目标文件安装到指定的目录下]

相关标签: openssl