Android下Native的so編譯:使用cmakelists.txt


android studio的CMakeLists.txt寫好后,在Studio中編譯沒問題,在命令編譯時則需要配置很多參數才能成功

示例CMakeLists.txt文件:

cmake_minimum_required(VERSION 3.4.1)

set(UVC_LIBS UVCCamera uvc usb100 jpeg-turbo1500)
FOREACH(UVC_LIB ${UVC_LIBS})
    add_library(${UVC_LIB} SHARED IMPORTED)
    set_target_properties(${UVC_LIB} PROPERTIES IMPORTED_LOCATION
        ${CMAKE_CURRENT_SOURCE_DIR}/lib/${ANDROID_ABI}/lib${UVC_LIB}.so)
ENDFOREACH(UVC_LIB)

set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -DFFFFFFF_DETECTOR_EXPORT -std=c++11")

add_library(XXXXX SHARED
            ${CMAKE_CURRENT_SOURCE_DIR}/src/BBBB/XDFD.cpp
            ${CMAKE_CURRENT_SOURCE_DIR}/src/BBBB/DFDSF.cpp 
            ${CMAKE_CURRENT_SOURCE_DIR}/src/BBBB/base64/CBase64.cpp 
            ${CMAKE_CURRENT_SOURCE_DIR}/src/BBBB/camera/AAAA.cpp )

target_include_directories(XXXXX PRIVATE
                           ${CMAKE_CURRENT_SOURCE_DIR}/inc
                           ${CMAKE_CURRENT_SOURCE_DIR}/src/XXX)

target_link_libraries(SL3DCameraCtrl
                      ${UVC_LIBS}
                      android
                      log)

由於使用了STL,整個CMAKE執行的命令行寫成如下:

D:\10.AndroidSDK\cmake\3.10.2.4988404\bin\cmake.exe -G "Unix Makefiles" -DCMAKE_TOOLCHAIN_FILE="%ANDROID_NDK%\build\cmake\android.toolchain.cmake" ..\..\ -DCMAKE_MAKE_PROGRAM="%ANDROID_NDK%\prebuilt\windows-x86_64\bin\make.exe" -DCMAKE_BUILD_TYPE=Release -DANDROID_ABI=arm64-v8a -DANDROID_PLATFORM=android-21 -DANDROID_STL=c++_static

用於編譯的批處理文件如下:

set ANDROID_NDK=D:\10.AndroidSDK\ndk\android-ndk-r15b
 
mkdir build\arm64-v8a
cd    build\arm64-v8a

D:\10.AndroidSDK\cmake\3.10.2.4988404\bin\cmake.exe -G "Unix Makefiles" -DCMAKE_TOOLCHAIN_FILE="%ANDROID_NDK%\build\cmake\android.toolchain.cmake" ..\..\ -DCMAKE_MAKE_PROGRAM="%ANDROID_NDK%\prebuilt\windows-x86_64\bin\make.exe" -DCMAKE_BUILD_TYPE=Release -DANDROID_ABI=arm64-v8a -DANDROID_PLATFORM=android-21 -DANDROID_STL=c++_static
D:\10.AndroidSDK\cmake\3.10.2.4988404\bin\cmake.exe --build .
cd ..\..\

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM