使用CMake 2.8.1为Visual Studio 2005添加编译器标志

3

这可能是一个初学者容易遇到的问题:我想在我的项目中添加编译器标志/EHsc,并尝试了以下两种方法

SET_TARGET_PROPERTIES(name_of_my_project PROPERTIES COMPILER_FLAGS "/EHsc")

and

SET (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /EHsc")

在我的CMakeLists.txt文件中,使用这两个版本都可以生成Visual Studio解决方案而不会出错。
编辑:起初我问为什么这两个版本都无法工作。好吧,因为我是个白痴,在其他地方犯了错误,所以这两行代码都没有被处理。不过,我仍然想知道这两个版本是否等价。
1个回答

2

在只有1个目标的项目上,它们是等效的。


SET_TARGET_PROPERTIES为指定的目标(在您的情况下也是项目名称)设置编译器标志。如果您有多个目标,则其他目标将不会设置“/EHsc”标志。

请注意,您需要使用COMPILE_FLAGS而不是COMPILER_FLAGS,因此正确的语句应为:

SET_TARGET_PROPERTIES(name_of_my_project PROPERTIES COMPILE_FLAGS "/EHsc")

SET(CMAKE_CXX_FLAGS ...)将设置当前目录和任何子目录中所有目标的C++标志。因此,您可以使用它来设置适用于项目中定义的所有库和可执行文件的全局C++标志。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接