我希望有两个项目,它们建立在相同的源文件之上,而第二个项目只是一个小子集,并且有一些不同的定义和构建标志。
当我尝试这样做时:
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。我不确定为什么它似乎适用于文件,但不适用于标志。