3
覆盖单个文件的编译标志
我想使用一组全局标志来编译项目,这意味着在我的顶级CMakeLists.txt文件中,我指定了: ADD_DEFINITIONS ( -Wall -Weffc++ -pedantic -std=c++0x ) 但是,对于子目录中的特定文件(例如“ foo.cpp”),我想将编译标志切换为不应用-Weffc ++(包括我无法更改的商业库)。为了简化仅使用-Wall的情况,我尝试: SET_SOURCE_FILES_PROPERTIES( foo.cpp PROPERTIES COMPILE_FLAGS -Wall ) ADD_EXECUTABLE( foo foo.cpp ) ,这没有用。我也试过 SET_PROPERTY( SOURCE foo.cpp PROPERTY COMPILE_FLAGS -Wall ) ADD_EXECUTABLE( foo foo.cpp ) 和 ADD_EXECUTABLE( foo foo.cpp ) SET_TARGET_PROPERTIES( foo PROPERTIES COMPILE_FLAGS -Wall ) ,但两者都不起作用。 最后,我尝试删除此定义: REMOVE_DEFINITIONS( -Weffc++ ) ADD_EXECUTABLE( …