我需要在我的 CMake 文件(CMake 2.8.10.2)中的 C 和 C++ 编译行中添加各种标志。我看到有些人使用add_definitions
,但据我所知,这是用于预处理器标志(-D
)。我有一些我不想传递给预处理器的标志。
所以我一直在尝试修改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% 设置或其他东西),否则如果无法使用这些列表,那么这些列表到底有什么用?即使文档表明它的效率/适当性较低,我是否应该使用引用的版本?