如何用cmake将编译器标志添加到单个翻译单元中(我想将它添加,而不是覆盖其他)?将编译器标志附加到CMake的文件中
我试着用
set_source_files_properties(MyFile.cpp PROPERTIES CMAKE_CXX_FLAGS "-msse4.1")
,但它不工作..如何做到这一点的任何建议?
如何用cmake将编译器标志添加到单个翻译单元中(我想将它添加,而不是覆盖其他)?将编译器标志附加到CMake的文件中
我试着用
set_source_files_properties(MyFile.cpp PROPERTIES CMAKE_CXX_FLAGS "-msse4.1")
,但它不工作..如何做到这一点的任何建议?
设置源文件标志的正确属性名为COMPILE_FLAGS。因为这是一个字符串属性,附加额外的选项正确的方法是使用APPEND_STRING
变体set_property命令:
set_property(SOURCE MyFile.cpp APPEND_STRING PROPERTY COMPILE_FLAGS " -msse4.1 ")
的APPEND_STRING
选项只适用于CMake的2.8.6或更高版本。
试试这个:
set_property(SOURCE MyFile.cpp APPEND PROPERTY CMAKE_CXX_FLAGS "-msse4.1")
顺便说一句,一些属性是总是附加,例如,COMPILE_FLAGS。对于那些你不需要做什么特别的,只是设置他们,他们得到附加:)
就快,这应该工作:
set_property(SOURCE MyFile.cpp APPEND PROPERTY CMAKE_CXX_FLAGS -msse4.1)
特定种类的帮助程序(如set_source_files_properties()
)有时可以得心应手,但它们有一个非常简单的界面。对于不平凡的事情,你必须使用set_property()
。我发现我实际上很少使用助手。