Android下Native的so编译:使用cmakelists.txt
2024-10-19 22:39:13
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 ..\..\
最新文章
- Dapper完美兼容Oracle,执行存储过程,并返回结果集。
- C#与C/C++的交互zz
- SharePoint远程发布Solution
- 启发式算法(Heuristic Algorithm)
- 思科 vlan 相关操作
- HBase Snapshot功能介绍
- Python 之 lambda 函数
- 【Vijos】1431 守望者的逃离
- 60分钟内从零起步驾驭Hive实战学习笔记
- 【js】IE、FF、Chrome浏览器中的JS差异介绍
- Move to Another Changelist
- contenteditable 属性
- 什么是位、字节、字、KB、MB
- HDOJ 1005
- linux中怎样设置DHCP
- TSL230选型
- hdu 1700 Points on Cycle 水几何
- mui点击加载,下拉刷新,上下整合代码
- a链接在新窗口打开
- 网站开发中使用javascript获取浏览器滚动条宽度
热门文章
- 用 C++ 模板元编程实现有限的静态 introspection
- Django中数据库的增删改查
- Codeforces Round #575 (Div. 3) B. Odd Sum Segments (构造,数学)
- SCC统计
- Python核心技术与实战——十八|Python并发编程之Asyncio
- Luogu P2595 [ZJOI2009]多米诺骨牌 容斥,枚举,插头dp,轮廓线dp
- ZROI 19.07.30 简单字符串/ll
- SpringCloud学习系列-Eureka服务注册与发现(1)
- linux的字符集转换
- 2019hdu多校 Minimal Power of Prime