我需要在我的 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%设置之外),这些列表还有什么用处呢?即使文档建议它不太有效/合适,我是否应该使用引号版本?