2013-11-27 58 views
8

如何用cmake将编译器标志添加到单个翻译单元中(我想将它添加,而不是覆盖其他)?将编译器标志附加到CMake的文件中

我试着用

set_source_files_properties(MyFile.cpp PROPERTIES CMAKE_CXX_FLAGS "-msse4.1") 

,但它不工作..如何做到这一点的任何建议?

回答

15

设置源文件标志的正确属性名为COMPILE_FLAGS。因为这是一个字符串属性,附加额外的选项正确的方法是使用APPEND_STRING变体set_property命令:

set_property(SOURCE MyFile.cpp APPEND_STRING PROPERTY COMPILE_FLAGS " -msse4.1 ") 

APPEND_STRING选项只适用于CMake的2.8.6或更高版本。

2

试试这个:

set_property(SOURCE MyFile.cpp APPEND PROPERTY CMAKE_CXX_FLAGS "-msse4.1") 

顺便说一句,一些属性是总是附加,例如,COMPILE_FLAGS。对于那些你不需要做什么特别的,只是设置他们,他们得到附加:)

3

就快,这应该工作:

set_property(SOURCE MyFile.cpp APPEND PROPERTY CMAKE_CXX_FLAGS -msse4.1) 

特定种类的帮助程序(如set_source_files_properties() )有时可以得心应手,但它们有一个非常简单的界面。对于不平凡的事情,你必须使用set_property()。我发现我实际上很少使用助手。

相关问题