首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

关于CMake中不同变量的用法与总结

CMake中的变量CMake变量的类型有多种:通过set设置的普通变量和缓存变量、环境变量、数组变量等等,由于CMake在生成的过程中会加载缓存的关系,因此用法不一样。...和编程语言中局部变量的用法类似,这个变量会屏蔽CMake缓存中的同名变量,(类似局部变量屏蔽全局变量)。但是这条语句不会改变缓存中的var变量。...还有一种方法能够设置CACHE变量,就是通过cmake命令的-D选项,可以添加一个CACHE变量。...给定的值option实际上只是“初始值”(在第一个配置步骤中一次传送到缓存),之后将由用户通过CMake的GUI或者命令行进行更改总结正常使用的时候,如果有多层CMakeLists.txt,需要跨文本的变量...另外,由于CMake没有有效的清除缓存的方法,如果要彻底清除缓存,需要删除build或者release文件夹的所有文件我正在参与2023腾讯技术创作特训营第三期有奖征文,组队打卡瓜分大奖!

20700
您找到你想要的搜索结果了吗?
是的
没有找到

cmake:在各级子项目(目录)之间共享变量

项目目录结构如下图,facedetect和facefeature都要用到opencl中的include文件,1.2,2.0,2.1是不同的opencl版本的头文件,希望在cmake创建Makefile时...,但opencl与facedetect和facefeature在同级目录,所以用set定义的变量无法共享,要用set(variable value CACHE INTERNAL docstring )这种方式定义的变量会把变量加入到...在facedetect下的CMakeLists.txt中读取这个一个变量 MESSAGE(STATUS "ICD_LIBRARY :${ICD_LIBRARY}") 每次运行cmake都会更新这个变量...当用set_property定义的property时,第一个指定作用域(scope)的参数设为GLOBAL,这个property在cmake运行期间作用域就是全局的。...CMakeLists.txt中定义一个名为INCLUDE_OPENCL_1_2 的global property set_property(GLOBAL PROPERTY INCLUDE_OPENCL_1_2 "${CMAKE_CURRENT_LIST_DIR

1.6K40

跨平台编译工具-CMake的语法特性与常用变量

(hello main.cpp ${HELLO}) cmake指令的变量使用 ${变量} 的形式读取变量,但在 IF 逻辑判断中,直接输入变量名称即可,如上面示例代码中的 HELLO 2.2. cmake...的重要指令和常用变量 cmake_minimum_required : 指定cmake最小版本要求 # 指定cmake最小版本要求为 2.8.3 cmake_minimum_required(VERSION...Cmake 常用变量 CMAKE_FLAGS : gcc 编译选项 CMAKE_CXX_FLAGS : g++ 编译选项 # 在 CMAKE_CXX_FLAGS 编译选项后追加 -std=c++11 set...、_SOURCE_DIR 这三个变量指代的内容是一致的,不论采用何种编译方式,都是工程经层目录 如果是 in source build ,跟 CMAKE_BINARY_DIR...变量一致 PROJECT_SOURCE_DIR 跟其他指令稍有区别,但这里可以理解他们是一致的 CMAKE_C_COMPILE : 指定C编译器 CMAKE_CXX_COMPILE : 指定C++编译器

1.1K10

CMakeCMake 引入 ( Android NDK 构建脚本 | CMake 命令手册 )

文章目录 一、Android NDK 构建脚本 二、CMake 构建脚本示例 三、CMake 命令手册 1、CMake 脚本命令 2、CMake 工程命令 该系列博客的应用场景是 Android Studio...上述命令都是 CMake 命令 , 可以在 CMake 命令文档中查询 , 当前 CMake 中有 47 个脚本命令 , 46 个工程命令 ; CMake 构建脚本示例 : # 指定 CMake...} 是本 CMakeList.txt 构建脚本的路径 , 是 CMake 工具内置的变量 # Android CMake 也内置了一些变量 , 如 ANDROID_ABI...和 CPU 架构 需要到对应的目录中查找 , 此处是 29 版本 32 位 ARM 架构的日志库 find_library( log-lib log) # 设置变量...# CMAKE_CXX_FLAGS 表示会将 C++ 的参数传给编译器 # CMAKE_C_FLAGS 表示会将 C 参数传给编译器 # 参数设置 : 传递 CMAKE_CXX_FLAGS C+=

3.6K01

CMake学习笔记(二)——CMake语法

3、变量使用${}方式取值,但是在 IF 控制语句中是直接使用变量名; 4、指令(参数 1 参数 2…),参数使用括弧括起,参数之间使用空格或分号分开; 一. CMake中常用预定义变量 1....CMake的预定义变量 PROJECT_SOURCE_DIR:工程根目录; PROJECT_BINARY_DIR:运行cmake命令的目录。...具体原因见后文外部编译部分; CMAKE_INCLUDE_PATH:环境变量,非cmake变量CMAKE_LIBRARY_PATH:环境变量CMAKE_CURRENT_SOURCE_DIR:当前处理的...) 指令不会对该变量有影响,但改变了最终目标文件的存储路径; CMAKE_CURRENT_LIST_FILE:输出调用该变量的CMakeLists.txt的完整路径; CMAKE_CURRENT_LIST_LINE...系统信息预定义变量 CMAKE_MAJOR_VERSION cmake主版本号,如2.8.6中的2 CMAKE_MINOR_VERSION cmake次版本号,如2.8.6中的8 CMAKE_PATCH_VERSION

5.2K100

CMakecmake的install指令「建议收藏」

有时候,也会用到一个非常有用的变量CMAKE_INSTALL_PREFIX,用于指定cmake install时的相对地址前缀。...) 参数中的TARGET可以是很多种目标文件,最常见的是通过ADD_EXECUTABLE或者ADD_LIBRARY定义的目标文件,即可执行二进制、动态库、静态库: 目标文件 内容 安装目录变量...与库关联的PRIVATE头文件 ${CMAKE_INSTALL_INCLUDEDIR} include 为了符合一般的默认安装路径,如果设置了DESTINATION参数,推荐配置在安装目录变量下的文件夹...其中,不同的TYPE,cmake也提供了默认的安装路径,如下表: TYPE类型 安装目录变量 默认安装文件夹 BIN ${CMAKE_INSTALL_BINDIR} bin SBIN ${CMAKE_INSTALL_SBINDIR...} /doc 请注意,某些类型的内置默认值使用DATAROOT目录作为前缀,以CMAKE_INSTALL_DATAROOTDIR变量值为内容。

6.8K20

cmake使用

image.png cmake image.png CMake是一个跨平台的安装编译工具,可以用简单的语句来描述所有平台的安装编译过程。...aux_source_directory(路径 变量) # 给文件名/路径名或其他字符串起别名,用${变量}获取变量内容 set(变量 文件名/路径/...common SHARED util.cpp) # 生成动态库或共享库 搜索所有的 cpp 文件 aux_source_directory(dir VAR) 发现一个目录下所有的源代码文件并将列表存储在一个变量中...环境变量 使用环境变量 $ENV{Name} 写入环境变量 set(ENV{Name} value) # 这里没有“$”符号 预定义变量 变量 含义 PROJECT_SOURCE_DIR 工程的根目录...CMakeLists.txt 的完整路径 CMAKE_CURRENT_LIST_LINE 当前所在的行 CMAKE_MODULE_PATH 定义自己的 cmake 模块所在的路径,SET(CMAKE_MODULE_PATH

1.9K30

CMake基础

不适用 CMake 可以自动检测当前的编译器,需要添加哪些 flag。...比如 OpenMP,只需要在 CMakeLists.txt 中指明 target_link_libraries(a.out OpenMP::OpenMP_CXX) 即可 五、CMake的使用 1.CMake...加载到内存中空闲的位置,并且替换相应的“插桩”指向的地址为加载后的地址,这个过程称为重定向,这样以后函数被调用就会跳转到动态加载的地址去 链接库文件查找位置顺序: Windows:可执行文件同目录,其次是环境变量...%PATH% Linux:ELF格式可执行文件的RPATH,其次是/usr/lib等 3.CMake生成静态库和动态库 CMake 除了 add_executable 可以生成可执行文件外,还可以通过...fopenmp) # 添加编译器命令行选项 注:没有target_前缀的选项会让项目所有文件都添加选项的属性 tips:add_definitions(NOMINMAX) 可以在C++定义变量

1.8K20

CMake教程】(五)CMake 配置install打包

变量的路径,如果我们要设置配置路径可以使用set命令设置CMAKE_INSTALL_PREFIX变量的值来改变路径。...一般默认情况CMAKE_INSTALL_PREFIX变量的值为,在UNIX系统中为:/usr/local,在windows系统中为:c:/Program Files/${PROJECT_NAME} 首先...implementation" ON) # 指定版本号的配置文件 configure_file(include/TutorialConfig.h.in TutorialConfig.h) # 判断变量...USE_MYMATH) # 添加一个名字为MathFunctions的子编译路径 add_subdirectory(mathlib) # 列出MathFunctions库的所有项目,并添加到外部库变量...变量中的路径 # 配置可执行文件到安装路径 CMAKE_INSTALL_PREFIX的bin中 install(TARGETS tutorial DESTINATION bin) # 配置程序的头文件到安装路径

8.4K21
领券