本文主要是介绍cmake进阶:目录属性之 INCLUDE_DIRECTORIES说明一,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
一. 简介
前一篇文章学习了 cmake的一些目录属性,其中最重要的是 头文件搜索路径。文章如下:
cmake进阶:目录属性说明一-CSDN博客
本文主要学习 一个目录属性 INCLUDE_DIRECTORIES,即头文件搜索路径。
二. cmake进阶:目录属性之 INCLUDE_DIRECTORIES
1. INCLUDE_DIRECTORIES
此属性 是 目 录 的 头 文 件 搜 索 路 径 列表, 其 实 就 是 include_directories() 命 令 所 添 加 的 目 录 。
include_directories() 命 令 会 将 指 定 的 目 录 添 加 到 INCLUDE_DIRECTORIES 属 性 中 , 所 以 INCLUDE_DIRECTORIES 属性其实就是一个头文件搜索路径列表。
准备一个C工程,顶层CMakeLists.txt文件中代码如下:
cmake_minimum_required("VERSION" "3.16") #cmake最低版本要求
project(HELLO VERSION 1.1.0) #设置工程版本号为 1.1.0#获取目录的 INCLUDE_DIRECTORIES 属性
get_directory_property(out_var INCLUDE_DIRECTORIES)
message("${out_var}")#调用 include_directories 添加头文件搜索目录
include_directories(include)
#再次获取 INCLUDE_DIRECTORIES 属性
get_directory_property(out_var INCLUDE_DIRECTORIES)
message("${out_var}")#再次调用 include_directories,将目录放在列表前面
include_directories(BEFORE hello)
#再次获取 INCLUDE_DIRECTORIES 属性
get_directory_property(out_var INCLUDE_DIRECTORIES)
message("${out_var}")
get_directory_property(<variable> [DIRECTORY <dir>] <prop-name>)
进入 build目录下, 运行 "cmake .." 命令后,打印信息如下:
2. 使用 set_directory_properties() 命令设置 INCLUDE_DIRECTORIES 属性
set_directory_properties(PROPERTIES prop1 value1 prop2 value2)
cmake_minimum_required("VERSION" "3.16") #cmake最低版本要求
project(TEST VERSION 1.1.0) #设置工程版本号为 1.1.0
add_subdirectory(include)set_directory_properties(PROPERTIES INCLUDE_DIRECTORIES /home/wangtian/Code_Learns/C_Learns/test/cmake/test/include)get_directory_property(out_var INCLUDE_DIRECTORIES)
message("${out_var}")add_executable(test main.c)
target_link_libraries(test libhello)
进入到 build 目录下,执行 "cmake .." 命令、make 构建、编译:
这篇关于cmake进阶:目录属性之 INCLUDE_DIRECTORIES说明一的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!