android cmake 打印_在AndroidStudio中使用CMake

本文详细介绍了如何在Android Studio中使用CMake进行集成,并解决find_package的常见问题。通过设置CMAKE_FIND_ROOT_PATH_MODE_XXX来控制查找路径,避免在不同环境下找不到依赖库。同时,通过修改CMAKE_MODULE_PATH、CMAKE_PREFIX_PATH等变量,确保find_path和find_package能正确找到库文件。示例展示了如何查找并链接curl库。
摘要由CSDN通过智能技术生成

在使用 android studio 进行 集成的时候终于 将我之前对于 find_X 不懂的 搞懂了一点

说在前面

androidstudio 默认下载的cmake 为 cmake version 3.10.2 目前我的android studio 的版本是: Android Studio 4.0

可以自己下载最新版本的 cmake 然后进行配置 比方我在 local.properties cmake.dir=D\:\\softwarefiles\\chrome\\cmake-3.10.2-win64-x64 增加了 这个,还需要在 build.gradle 中增加android {

externalNativeBuild {

cmake {

path "src/main/cpp/CMakeLists.txt"

version "3.10.2"

}

}

}

复制代码当然,还是以自带的为准。因为 会有其他问题的.因为android为我们配置好了cmake 你一定要换个最新的 你需要自己实现一套 android.toolchain.cmake 否则 凉凉

因为每次编译都会 重复执行很多遍 ,所以在 build.gradle 中增加如下代码android {

defaultConfig {

ndk{

abiFilters "arm64-v8a"

}

}

}

复制代码这样只会编译指定平台的代码

初步印象

首先Android 默认 会有下面这些 选项:

if(NOT CMAKE_FIND_ROOT_PATH_MODE_PROGRAM)

set(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER)

endif()

if(NOT CMAKE_FIND_ROOT_PATH_MODE_LIBRARY)

set(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY)

endif()

if(NOT CMAKE_FIND_ROOT_PATH_MODE_INCLUDE)

set(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY)

endif()

if(NOT CMAKE_FIND_ROOT_PATH_MODE_PACKAGE)

set(CMAKE_FIND_ROOT_PATH_MODE_PACKAGE ONLY)

endif()

复制代码

上述的选项 产生的影响如下

# 影响 find_package()

message(WARNING "CMAKE_FIND_ROOT_PATH_MODE_PACKAGE ${CMAKE_FIND_ROOT_PATH_MODE_PACKAGE}")

# 影响 find_program()

message(WARNING "CMAKE_FIND_ROOT_PATH_MODE_PROGRAM ${CMAKE_FIND_ROOT_PATH_MODE_PROGRAM}")

# 影响 find_library()

message(WARNING "CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ${CMAKE_FIND_ROOT_PATH_MODE_LIBRARY}")

# 影响 find_file() 和 find_path()

message(WARNING "CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ${CMAKE_FIND_ROOT_PATH_MODE_INCLUDE}&#

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值