我遇到了Cmake缺少依赖关系的问题。有问题的代码看起来像。
SUBROUTINE foo
USE A
#ifdef C
USE B
#endif
...
在生成依赖项时,预处理器阻塞部分似乎被排除在外。这导致错误,因为模块B永远不会在此源文件之前构建。我该如何解决这个问题?
更新
我在这里设置预处理器定义。
add_library (abc STATIC ${abc_sources})
set_target_properties (abc PROPERTIES COMPILE_FLAGS "${BUILD_FLAGS} -D C")
答案 0 :(得分:2)
想出来。正确的解决方案是使用
set_target_properties (abc PROPERTIES COMPILE_DEFINITIONS "C")
COMPILE_DEFINITIONS
是set_target_properties
anaglog add_definitions
。