我在我的CMakeLists.txt中有以下内容:
project( Matfile )
SET ( CMAKE_CXX_FLAGS "-std=c++0x" )
set ( SOURCES
"foo.cpp"
"bar.cpp"
)
add_library(
Matfile
${SOURCES}
)
作为你的助手,我将翻译以下内容。这是关于编程的问题。
正如你所想象的那样,我想做的是使用标志-std=c++0x编译我的C++源代码(我正在使用gcc,需要C++11功能)。不幸的是,这并不起作用,因为当我使用cmake生成makefile时,变量CMAKE_CXX_FLAGS完全无效。
如何在项目文件中设置此变量?
这似乎是一个非常愚蠢的问题,但我花了不少于两个小时来弄清楚这个问题。
set
命令对于标志看起来格式良好(尽管对于 gcc v4.7 及以后版本,标志应该是-std=c++11
)。你所说的“完全无效”是什么意思?如果运行make VERBOSE=1
,输出是什么? - FraserCMakeCache.txt
文件中显示为空。因此,在CMakeCache中检查是不够的,除非您强制将其写回缓存(使用set(var value CACHE STRING "" FORCE)
)。 - Alexander Oh