Android NDK(二)、CMakeList文件参数说明

1、指定cmake的最低版本

cmake_minimum_required(VERSION 3.4.1)

2、add_library

2.1、添加一个库

  • 添加一个库文件,指定名称
  • 指定STATIC,SHARED,MODULE参数来指定库的类型。STATIC:静态库;SHARED:动态库;MODULE:在使用dyld的系统有效,若不支付dyld,等同于SHARED
  • EXCLUDE_FORM_ALL:表示该库不会默认构建。
  • source1 source2 …sourceN:用来指定库的源文件。
add_library(
        native-ndk  //库的名称

        SHARED  //静态库

        native_ndk.cpp //库的源文件,可多个
)

2.2、导入预编译库

  • 添加一个已存在的预编译库,指定名称
  • 一般与set_target_properties使用
add_library( ffmpeg //名称
             SHARED //静态库
             IMPORTED //导入方式
             )
set_target_properties( ffmpeg //名称,与上面对应
                       PROPERTIES IMPORTED_LOCATION //库文件的路径
                       ../../../../libs/${ANDROID_ABI}/libffmpeg.so //导入库的路径
                       )

3、set设置变量

  • 设置变量
#设置C++编译参数(CMAKE_CXX_FLAGS是全局变量)
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=gnu++11")

4、设置头文件目录

  • include_directories
#引入include目录下的所有头文件
include_directories(src/main/cpp/include)

5、目标库链接设置

  • target_link_libraries
  • 将若干库链接到目标库文件,注意库的添加顺序,目标库在最前面,链接库在后面,链接库可以有多个。
target_link_libraries(   native-ndk //目标库,注意要在add_library指定

                       ${log-lib} //链接的库,可以有多个
                       )

6、设置子目录编译

  • 如果当前目录下还有子目录时可以使用add_subdirectory,子目录中也需要包含有CMakeLists.txt

7、设置第三方so库路径

set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -L${CMAKE_SOURCE_DIR}/../jniLibs/${ANDROID_ABI}")
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值