我需要爲我的CMake文件(CMake 2.8.10.2)中的C和C++編譯行添加各種標誌。我看到一些人使用add_definitions
,但從我可以看到的是用於預處理器標誌(-D
)。我有一些我不想傳遞給預處理器的標誌。cmake list爲編譯器標誌追加產生假結果?
所以我一直在嘗試修改CMAKE_C_FLAGS
和CMAKE_CXX_FLAGS
。我看到一些人使用的東西,如:
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -new -flags -here")
但後來我在cmake的文檔閱讀,這是效率較低,並做到這一點是使用list(APPEND ...)
,這樣的正確方法:
list(APPEND CMAKE_C_FLAGS -new -flags -here)
但是,當我這樣做時,我的編譯行包含用分號分隔的標誌,並且是語法錯誤。我讀到,這是列表內部存儲,但我認爲這將由cmake照顧,當我使用該變量。這似乎很基礎;難道我做錯了什麼?我的意思是,如果不能使用這些列表,除非你碰巧想要一個以分號分隔的值列表(除了我猜想Windows%PATH%設置或其他東西),否則這些列表有什麼用處?我應該使用引用的版本,即使文檔顯示它效率較低/合適嗎?
我使用了一個宏,雖然因爲它很容易複製的東西等時,得到的VAR名稱不匹配的集()方法: 宏(追加名項目) \t集($ {名稱}「$ {$ {name}} $ {item}」) endmacro() – Trass3r 2013-07-17 12:02:56