三、android编译cmake工程

现在我们需要编译我们自己的程序,我们自己的程序中使用了openssl的函数,这样就形成了一个库引用库的过程,这个通了就基本都通了。

1.cmake版本问题

如果你使用的cmake版本在3.6.0以上就没有这个问题,如果你使用的低于这个版本当你想要编译的cmake工程时会报错

CMake Error at /home/renz/android/AndroidWorkSpace/NDK_Tools/android-ndk-r21/build/cmake/android.toolchain.cmake:35 (cmake_minimum_required):
  CMake 3.6.0 or higher is required.  You are running version 3.5.1
Call Stack (most recent call first):
  /usr/share/cmake-3.5/Modules/CMakeDetermineSystem.cmake:98 (include)
  CMakeLists.txt:6 (project)

这时你需要更新你的cmake工具
https://cmake.org/download/
选择Binary distributions:可以直接下载生成好的工具,不需要自己编译
如果觉得下载速度慢可以尝试http://www.cmake.org/files下载
我下载cmake-3.17.0-Linux-x86_64.tar.gz
解压tar xvf cmake-3.17.0-Linux-x86_64.tar.gz
cmake路径为/home/renz/android/cmake-3.17.0-Linux-x86_64/bin

renz@media-Lenovo-Product:~/android/cmake-3.17.0-Linux-x86_64/bin$ /home/renz/android/cmake-3.17.0-Linux-x86_64/bin/cmake -version
cmake version 3.17.0

CMake suite maintained and supported by Kitware (kitware.com/cmake).

有了新版本的cmake之后就可以开始编译我们的mylib-sample工程了。

mylib-sample源码下载https://download.csdn.net/download/andylauren/12292340

github源码下载https://github.com/RTplay/android-ndk-sample
需要修改build.sh脚本中的CMAKE_BIN变量为自己的cmake
需要修改CMakeLists.txt中OPENSSL_INCLUDE_PATH,OPENSSL_LIB_PATH分别是openssl的头文件路径和库路径

2.工程内容

就是封装了MD5接口。输入字符串,输出MD5字符串

3.编译工程

./build.sh 
会在工程同级目录有lib文件夹,其中有多个文件夹arm64-v8a  armeabi-v7a  x86  x86_64

这时我们就拥有了需要的openssl和mylib-sample库。

参考博文

Android下openssl编译和使用(一)
https://blog.csdn.net/zoujin6649/article/details/89891720
Android下openssl编译和使用(二)(验证ok,但是需要修改)
https://blog.csdn.net/zoujin6649/article/details/89949176
使用clang编译openssl1.1.1d
https://blog.csdn.net/u011077027/article/details/102713175
Ubuntu16.04升级cmake到3.11.3
https://www.wandouip.com/t5i137471/
 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章