我使用CMake爲兩個版本的項目,其中一個需要-lglapi,另一個不需要。追加到CMAKE_C_FLAGS
到目前爲止,我們所用的線條看起來像:
SET(CMAKE_C_FLAGS "-O3 -xSSE3 -restrict -lpthread -lX11 -ldrm")
SET(CMAKE_CXX_FLAGS "-O3 -xSSE3 -restrict -lpthread -lX11 -ldrm")
我添加了一個if語句在我CMakeList.txt這些線路正好經過:
if(SINGLE_MODE)
SET(CMAKE_C_FLAGS ${CMAKE_C_FLAGS} " -lglapi")
SET(CMAKE_CXX_FLAGS ${CMAKE_CXX_FLAGS} " -lglapi")
endif(SINGLE_MODE)
的SINGLE_MODE變量定義一點點向上。當我使用的消息命令顯示標誌變量,它看起來好嗎的內容:
-O3 -xSSE3 -restrict -lpthread -lX11 -ldrm -lglapi
但是,當我開始編譯我遇到了一個編譯錯誤。使用詳細模式,我意識到,在編譯器中調用它看起來像:
-O3 -xSSE3 -restrict -lpthread -lX11 -ldrm; -lglapi
即不知何故,在將-lglapi添加到列表之前,添加了分號。
有沒有人在這裏遇到類似的問題,並知道解決這個問題的方法?我搜索了一段時間並研究了CMake手冊,但看不到我在這裏做錯了什麼。
感謝, 托比亞斯
你試過'SET(CMAKE_CXX_FLAGS「$ {CMAKE_CXX_FLAGS} -lglapi」)嗎? – jpo38
@ jpo38您應該回答並獲得您的名譽:) – Antonio
@ jpo38,謝謝。那就是訣竅。我應該自己想到這個,但在看了太久的東西之後,你有點失明瞭。 – TobiSF