Android------CMakeLists.txt中的一些常规使用

这篇记录CMakeLists.txt中的一些常规CMake使用

预知识:

# CMAKE_SOURCE_DIR: 当前cmakelists.txt的路径 
# ANDROID_ABI :  获取build.gradle中设置的cpu架构名称
# Android支持的cpu架构armeabi、armeabi-v7a(目前大部分机器)、arm64-v8a (高端机型)、x86、x86_64、mips、mips64

在build.gradle中的配置

也会创建相应的文件夹

 

 1. 指定cmake最小支持版本的方法(#-----为cmake的注释符)

# 指定cmake最小支持版本的方法
cmake_minimum_required(VERSION 3.6)

 2.  打印方法

message("你好,我是打印方法")
message("ANDROID_ABI 值是:${ANDROID_ABI}") 

  如何查看答应结果???

   build--->make Project 

   

      

   

  3.  寻找头文件

# 寻找src/main/cmake/include文件路径的头文件(即 .h文件)
include_directories(src/main/cmake/include)

4.  find_library

find_library(log-lib log)
message("log-lib的目录:${log-lib}")

find_library会在/sdk/。。。/arm-linux-androideabi/21/下找相关的so文件 。其中21是由build.gradle中的minSdkVersion决定

5.  include_directories

#引入其他的 XX 目录的cmakelist
#add_subdirectory(XX)

 6.  file----引入动态库(.so)

#在cmake中空格为结束符
#将.c、.cpp文件的路径赋值给source
file(GLOB source src/main/cmake/*.c src/main/cmake/*.cpp src/main/cmake/a/*.cpp )
# hello-jni: 变量名 最终会生成的so名字
# SHARED: 动态库 
add_library(hello-jni SHARED ${source})

    set 

#第二种导入动态库的方法:
# c++: set命令设置CMAKE_C_FLAGS或CMAKE_CXX_FLAGS变量则是分别只针对c和c++编译器的。即c文件用CMAKE_C_FLAGS,c++文件用CMAKE_CXX_FLAGS。
# set 方法 
#CMAKE_CXX_FLAGS = "${CMAKE_CXX_FLAGS} XXXX" 这个很有意思,相当于i=i+XXXX
# -L: 库的查找路径 libTest.so 
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -L${CMAKE_SOURCE_DIR}/src/main/jniLibs/${ANDROID_ABI} ")
#相当于CMAKE_CXX_FLAGS = CMAKE_CXX_FLAGS + {CMAKE_SOURCE_DIR}/src/main/jniLibs/${ANDROID_ABI}

 

7.  引入静态库(.a文件)

# STATIC:静态库
# IMPORTED: 表示我们这一个静态库是以导入的形式添加进来(预编译静态库)
add_library(Test2 STATIC IMPORTED)

set_target_properties(Test2 PROPERTIES IMPORTED_LOCATION ${CMAKE_SOURCE_DIR}/src/main/cmake/${ANDROID_ABI}/libTest.a)

 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值