我希望有两个项目构建相同的源文件,第二个项目只有一个小子集,以及一些不同的定义和构建标志。
当我尝试这样的事情时:
SET (this_target PROJECT1)
PROJECT(${this_target})
...
ADD_EXECUTABLE(#{this_target} ...)
SET (this_target PROJECT2)
PROJECT(${this_target})
...
add_definitions (-DMYDEFINE)
TARGET_LINK_LIBRARIES( ${this_target} -myflag )
ADD_EXECUTABLE(#{this_target} ...)
它最终创建了两个项目,看似正确的源文件等,但出于某种原因,至少在 Visual Studio 2010 中,这两个项目似乎都在链接器标志中定义了 MYDEFINE 和 myflag。
我不确定为什么它似乎适用于文件,但不适用于标志。