2013-11-27 97 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()。我發現我實際上很少使用助手。

相關問題