c++ - 如何在子项目中忽略 CMake 编译器定义
问题描述
我有一个包含多个 3rd 方库的主要项目。我刚刚添加了一个新的第 3 方项目。我面临的问题是新项目在主项目编译器定义传递给它时中断。
如何避免将这些定义传递给第 3 方项目?另外,如果 3rd 方项目是独立编译的,它只需要两个包含目录。但是当与主项目一起编译时,会有许多额外的目录传递给它。
我试过寻找一个 set_definition() 但我没有看到任何有用的东西。任何指向示例或文章的链接都会很好。也可能是我没有寻找正确的解决方案。谢谢
解决方案
使用全局 'add_definition' 是旧方法。目前可能更好地定义编译器标志,每个目标,文件夹,源文件等定义等(在你的情况下是COMPILE_DEFINITIONS?)
只需在谷歌上搜索“现代 CMake”,您就会发现会议中的幻灯片和视频如何使用现代 CMake。
推荐阅读
- c# - 日期减法后如何返回很长时间?
- eloqua - 向 Eloqua Marketing Cloud 中的自定义对象中关联多个记录的同一电子邮件地址发送电子邮件
- ionic-framework - Ionic 版本 - 了解 ionic cli 版本和 ionic core 版本之间的区别
- mysql - MySQL:寻求帮助来定义查询
- java - 如何使用原始 SQL 查询在 Moqui 中查找实体?
- c - C 中的 pow 函数未按预期工作
- python - Python中的函数参数转换
- macos - Macos 应用程序在使用 NSDistributedNotificationCenter 和 CFRunLoopAddSource 时挂起
- mysql - Postgres 表大小如何大于 Mysql 表大小?
- c# - 为什么“new int[n] is object[]”是假的?为什么“int[] is object[] arr”是一个模式错误?