cmake 中CMAKE_BUILD_TYPE 和CMAKE_TOOLCHAIN_FILE 作用以及include_directories和target_include_directories区别

4 篇文章 0 订阅
1.CMAKE_BUILD_TYPE 和 CMAKE_TOOLCHAIN_FILE 是 CMake 的两个常用参数,用于控制构建过程和编译环境的配置。
CMAKE_BUILD_TYPE 参数用于指定构建类型。它的作用是确定编译器使用的优化级别、调试信息等构建相关的设置。常见的取值包括 Debug、Release、RelWithDebInfo 和 MinSizeRel。

Debug:用于开发和调试阶段,会启用调试信息并关闭优化。
Release:用于发布版本,会启用优化并关闭调试信息。
RelWithDebInfo:用于发布版本,同时保留调试信息和优化。
MinSizeRel:用于发布版本,最小化生成的可执行文件的大小。

示例:

cmake -DCMAKE_BUILD_TYPE=Debug ..
2.CMAKE_TOOLCHAIN_FILE 参数用于指定交叉编译工具链文件的路径。它的作用是告诉 CMake 使用特定的工具链进行交叉编译,用于在一个平台上开发和构建另一个平台的代码。

通常在嵌入式开发中,需要使用交叉编译工具链来构建适用于目标平台的代码。通过指定工具链文件,CMake 可以正确配置编译器、链接器等工具,并设置相关的编译选项和路径。

cmake -DCMAKE_TOOLCHAIN_FILE=/path/to/toolchain-file.cmake ..

上述命令会使用位于 /path/to/toolchain-file.cmake 的工具链文件进行交叉编译配置。

通过使用这两个参数,可以根据需要灵活地配置构建类型和交叉编译环境,以满足不同的开发需求。

3.include_directories和target_include_directories

include_directories 和 target_include_directories 都是 CMake 中用于添加包含文件目录的命令,但它们的作用范围和用法略有不同。

include_directories 是一个全局命令,用于为整个 CMakeLists.txt 文件中的所有目标添加包含文件目录。它会将指定的目录添加到编译器的搜索路径中,使得在编译过程中可以找到所需的头文件。

例如:

include_directories(/path/to/include)

在上述示例中,/path/to/include 目录下的头文件将在整个 CMakeLists.txt 文件中可用。

target_include_directories 是一个针对特定目标的命令,用于为指定的目标添加包含文件目录。它可以精确控制目标之间的包含文件关系,避免将包含目录应用于整个项目。例如:

target_include_directories(my_target PRIVATE /path/to/include)

在上述示例中,/path/to/include 目录下的头文件将仅应用于 my_target 目标。

总结一下,include_directories 适用于全局范围,而 target_include_directories 适用于针对特定目标的范围,可以更细粒度地控制包含文件的作用范围。在现代的 CMake 版本中,更推荐使用 target_include_directories 来管理包含文件目录。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值