zoukankan      html  css  js  c++  java
  • 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.AndroidSDKcmake3.10.2.4988404incmake.exe -G "Unix Makefiles" -DCMAKE_TOOLCHAIN_FILE="%ANDROID_NDK%uildcmakeandroid.toolchain.cmake" .... -DCMAKE_MAKE_PROGRAM="%ANDROID_NDK%prebuiltwindows-x86_64inmake.exe" -DCMAKE_BUILD_TYPE=Release -DANDROID_ABI=arm64-v8a -DANDROID_PLATFORM=android-21 -DANDROID_STL=c++_static

    用于编译的批处理文件如下:

    set ANDROID_NDK=D:10.AndroidSDK
    dkandroid-ndk-r15b
     
    mkdir buildarm64-v8a
    cd    buildarm64-v8a
    
    D:10.AndroidSDKcmake3.10.2.4988404incmake.exe -G "Unix Makefiles" -DCMAKE_TOOLCHAIN_FILE="%ANDROID_NDK%uildcmakeandroid.toolchain.cmake" .... -DCMAKE_MAKE_PROGRAM="%ANDROID_NDK%prebuiltwindows-x86_64inmake.exe" -DCMAKE_BUILD_TYPE=Release -DANDROID_ABI=arm64-v8a -DANDROID_PLATFORM=android-21 -DANDROID_STL=c++_static
    D:10.AndroidSDKcmake3.10.2.4988404incmake.exe --build .
    cd ....
  • 相关阅读:
    软件测试从业者,试用期生存指南(完整版)
    学测试,看视频?NONONO,除非这种情况
    vi / vim 字符替换详解
    Centos 下 mysql 安装过程
    Web测试到底是在测什么(资料合集)
    我花了两个小时,写了这份年终总结 。
    拒绝无效加班 !
    你离月薪30K还差哪些?
    从业十年分享:你应该知道的一些测试职业事实!
    别再TM跟我说找不到满意的工作!
  • 原文地址:https://www.cnblogs.com/eaglexmw/p/11465902.html
Copyright © 2011-2022 走看看