我想在两个不同的目标中包含一个.cpp文件(运行CMake之后成为两个VS项目)。我想为这些项目设置不同的COMPILE_FLAGS。
但是,当我这样做
SET_TARGET_PROPERTIES(myfile.cpp PROPERTIES COMPILE_FLAGS "flags1")
ADD_EXECUTABLE(project1 myfile.cpp)
SET_TARGET_PROPERTIES(myfile.cpp PROPERTIES COMPILE_FLAGS "flags2")
ADD_EXECUTABLE(project2 myfile.cpp)
“ flags2”适用于两个项目,因此属性似乎在第3行中被覆盖,而在第2行中未考虑。这是真的,还是我缺少什么?有办法解决吗?
谢谢!
最佳答案
将set_target_properties
命令应用于项目而不是源文件:
add_executable(project1 myfile.cpp)
set_target_properties(project1 PROPERTIES COMPILE_FLAGS "flags1")
add_executable(project2 myfile.cpp)
set_target_properties(project2 PROPERTIES COMPILE_FLAGS "flags2")
在目标上设置的标志将应用于目标内的所有源。
关于cmake - 不同目标中同一文件的不同编译标志,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/6665887/