androidstudio下JNI的CMakeList.txt编写教程

2025-10-21 11:54:12

1、先简单介绍一下CMake

是一个跨平台的编译工具,可以用简单的语句来描述所有平台的编译过程。他能够输出各种各样的makefile或者project文件,所有的语句都写在一个叫:CMakeLists.txt的文件中。

androidstudio下JNI的CMakeList.txt编写教程

2、android studio工程目录结构

androidstudio下JNI的CMakeList.txt编写教程

3、先上一个完整版本的CMakeLists.txt

cmake_minimum_required(VERSION 3.4.1)

include_directories(src/main/cpp/include/)

add_definitions(-D_LINUX -D_ANDROID)

add_library(

             native-lib

             SHARED

             src/main/cpp/native-lib.cpp

             )

add_library(othermodule SHARED IMPORTED)

set_target_properties(othermodule  PROPERTIES IMPORTED_LOCATION ${CMAKE_SOURCE_DIR}/src/main/jniLibs/${ANDROID_ABI}/libothermodule.so)

find_library(log-lib log )

target_link_libraries(

                       native-lib

                       othermodule 

                       ${log-lib})

androidstudio下JNI的CMakeList.txt编写教程

4、简单介绍一下基本语法

cmake_minimum_required(VERSION 3.4.1)

用于指定cmake的最小版本要求

androidstudio下JNI的CMakeList.txt编写教程

androidstudio下JNI的CMakeList.txt编写教程

5、用于指定头文件的目录

include_directories(src/main/cpp/include/)

androidstudio下JNI的CMakeList.txt编写教程

6、定义jni编译宏和其它编译参数

add_definitions(-D_LINUX -D_ANDROID)

androidstudio下JNI的CMakeList.txt编写教程

7、指定生成库的名称和类型,编译使用的c/c++文件

add_library(

             native-lib

             SHARED

             src/main/cpp/native-lib.cpp

             )

androidstudio下JNI的CMakeList.txt编写教程

8、引用第三方库,这是第三库引用的方式

add_library(othermodule SHARED IMPORTED)

set_target_properties(othermodule  PROPERTIES IMPORTED_LOCATION ${CMAKE_SOURCE_DIR}/src/main/jniLibs/${ANDROID_ABI}/libothermodule.so)

androidstudio下JNI的CMakeList.txt编写教程

9、引用android系统的系统库,如log库,是打印日志用的库

find_library(log-lib log )

10、与第三库链接生成目标native-lib库

target_link_libraries(

                       native-lib

                       othermodule 

                       ${log-lib})

androidstudio下JNI的CMakeList.txt编写教程

androidstudio下JNI的CMakeList.txt编写教程

声明:本网站引用、摘录或转载内容仅供网站访问者交流或参考,不代表本站立场,如存在版权或非法内容,请联系站长删除,联系邮箱:site.kefu@qq.com。
猜你喜欢