如何用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()
。我發現我實際上很少使用助手。