小编Tob*_*iSF的帖子

附加到CMAKE_C_FLAGS

我正在使用CMake进行两个版本的项目,其中一个需要-lglapi而另一个则不需要.

到目前为止,我们使用的线条看起来像这样:

SET(CMAKE_C_FLAGS "-O3 -xSSE3 -restrict -lpthread -lX11 -ldrm")
SET(CMAKE_CXX_FLAGS "-O3 -xSSE3 -restrict -lpthread -lX11 -ldrm")
Run Code Online (Sandbox Code Playgroud)

我在我的CMakeList.txt中添加了一个if语句,紧跟在这些行之后:

if(SINGLE_MODE)
    SET(CMAKE_C_FLAGS ${CMAKE_C_FLAGS} " -lglapi")
    SET(CMAKE_CXX_FLAGS ${CMAKE_CXX_FLAGS} " -lglapi")
endif(SINGLE_MODE)
Run Code Online (Sandbox Code Playgroud)

SINGLE_MODE变量定义了一点点.当我使用message命令显示标志变量的内容时,它看起来没问题:

-O3 -xSSE3 -restrict -lpthread -lX11 -ldrm -lglapi
Run Code Online (Sandbox Code Playgroud)

但是当我开始编译时,我遇到了编译错误.使用详细模式我意识到在编译器调用中看起来像:

-O3 -xSSE3 -restrict -lpthread -lX11 -ldrm; -lglapi
Run Code Online (Sandbox Code Playgroud)

也就是说,在将-lglapi添加到列表之前添加了分号.

这里有没有人遇到类似的问题,并知道解决这个问题的方法?我用谷歌搜索了很长一段时间并研究了CMake手册,但看不出我在这里做错了什么.

谢谢,托比亚斯

c c++ cmake compiler-flags linker-flags

14
推荐指数
2
解决办法
2万
查看次数

标签 统计

c ×1

c++ ×1

cmake ×1

compiler-flags ×1

linker-flags ×1