1

我遇到了 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")
4

1 回答 1

2

弄清楚了。正确的解决方案是使用

set_target_properties (abc PROPERTIES COMPILE_DEFINITIONS "C")

COMPILE_DEFINITIONS是 的set_target_properties类比add_definitions

于 2013-05-15T21:55:41.850 回答