如何在子项目中忽略 CMake 编译器定义
Posted
技术标签:
【中文标题】如何在子项目中忽略 CMake 编译器定义【英文标题】:How to ignore CMake Compiler Definitions in sub projects 【发布时间】:2018-05-02 21:07:08 【问题描述】:我有一个包含多个第三方库的主项目。我刚刚添加了一个新的第 3 方项目。我面临的问题是新项目在主项目编译器定义传递给它时中断。
如何避免将这些定义传递给第 3 方项目? 另外,如果 3rd 方项目是独立编译的,它只需要两个包含目录。但是当与主项目一起编译时,会有许多额外的目录传递给它。
我已经尝试寻找 set_definition() 但我没有看到任何有用的信息。 任何指向示例或文章的链接都会很好。也可能是我没有寻找正确的解决方案。 谢谢
【问题讨论】:
target_compile_definitions 【参考方案1】:使用全局“add_definition”是旧方法。目前,每个target、文件夹、源文件等定义编译器标志、定义等可能要好得多(在你的情况下是COMPILE_DEFINITIONS?)
只需在谷歌上搜索“现代 CMake”,您就会发现会议中的幻灯片和视频如何使用现代 CMake。
【讨论】:
以上是关于如何在子项目中忽略 CMake 编译器定义的主要内容,如果未能解决你的问题,请参考以下文章