三、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/
 

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