首页 > 解决方案 > 如何在子项目中忽略 CMake 编译器定义

问题描述

我有一个包含多个 3rd 方库的主要项目。我刚刚添加了一个新的第 3 方项目。我面临的问题是新项目在主项目编译器定义传递给它时中断。

如何避免将这些定义传递给第 3 方项目?另外,如果 3rd 方项目是独立编译的,它只需要两个包含目录。但是当与主项目一起编译时,会有许多额外的目录传递给它。

我试过寻找一个 set_definition() 但我没有看到任何有用的东西。任何指向示例或文章的链接都会很好。也可能是我没有寻找正确的解决方案。谢谢

标签: c++cmakeclang

解决方案


使用全局 'add_definition' 是旧方法。目前可能更好地定义编译器标志,每个目标,文件夹,源文件等定义等(在你的情况下是COMPILE_DEFINITIONS?)

只需在谷歌上搜索“现代 CMake”,您就会发现会议中的幻灯片和视频如何使用现代 CMake。


推荐阅读