我使用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