如何清除所有定义CMAKE
How to clear all defines from cmake?
我有一些项目,我需要一些特定的预处理器定义。仅此而已。我尝试了各种解决方案:
set(DEFINES MY_DEFINE)
target_compile_definitions(my_target PRIVATE ${DEFINES})
和
set(DEFINES -DMY_DEFINE)
add_definitions(${DEFINES})
甚至
set(DEFINES MY_DEFINE)
set_property(TARGET my_target PROPERTY CACHE COMPILE_DEFINITIONS ${DEFINES})
每次Cmake仍然注入其他定义:
WIN32
_WINDOWS
CMAKE_INTDIR="$(CONFIG)"
我的目标是静态库,如果可能影响任何事情,则项目生成器是Visual Studio 2015。我如何才能让Cmake仅设置我的定义?
,由于这些是平台在cmake中的特定定义,因此您只能为当前的CMakeList.txt
范围"全球"删除它们,而不是以下内容:
string(REGEX REPLACE "(-D|/D)[^ ]* " "" CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS}")
参考
- CMAKE设置变量递归?
在cmake中,您可以对通过add_definitions添加的任何定义使用remove_definitions。不过,我不确定这是否会在这里工作,因为CMake可能不会通过add_definitions添加它们。
您还可以在C 文件的顶部#UNDEF #UNDEF。这有点脏,但可能起作用。
相关文章:
- 使用VS Code和CMake Tools运行自定义命令
- 参数化自定义CMake工具链
- 在 Mac 上使用 CMAKE 将 FFTW 和 FFTWPP 链接到项目中时未定义的符号
- Cmake 链接问题:未定义对 Button::mousePressEvent(QGraphicsSceneMouseE
- 链接 cmake 时出现未定义的引用错误
- 对 'std::thread::_M_start_thread CMake 的未定义引用进行基准测试
- 对 CMake 中'cudaRegisterLinkedBinary'链接错误的未定义引用?
- CMake 在 Windows 上的自定义位置上找不到 Boost
- 告诉CMake链接到自定义文件夹中的Boost
- 对使用 CMake 生成为 lib .a 的方法的未定义引用
- 为了从自定义目录使用 CMake,我需要做什么?
- 使用带有 CMake 和 Conan 的外部库的未定义引用
- 通过cMake使用具有自定义文件扩展名的共享库
- 用于自定义调试构建的 CMake qt 输入库后缀
- 如何一次删除"cmake -D"定义的所有变量?
- 使用 CMake 对"JNI_CreateJavaVM"的未定义引用
- CMake 添加和删除宏定义以编译共享库/可执行文件
- 如何清除所有定义CMAKE
- Qt Creator 找不到具有自定义 cmake 步骤的库
- 自定义 CMake 配置类型。我可以以某种方式从调试中"inherit"吗?