CMake的禁用-std = C ++ 11 C文件标志 [英] CMake disable -std=c++11 flag for C files
问题描述
我试图建立 bkchaind 。构建一个选择是使用CMake的,所以我用自制(OSX 10.9.1)安装。当我做 cmake的
,不过,我得到:
I'm trying to build bkchaind. One build option is to use cmake, so I installed it with Homebrew (OSX 10.9.1). When I do cmake
, though, I get:
[ 2%] Building C object json-rpc-cpp/src/jsonrpc/CMakeFiles/jsonrpcStatic.dir/connectors/mongoose.c.o
error: invalid argument '-std=c++11' not allowed with 'C/ObjC'
我一点也不知道为什么 cmake的
将试图通过一个C ++ - 特定编译器选项为C / ObjC文件。如果我注释掉此行的主要的CMakeLists.txt
文件:
I am none too sure why cmake
would try to pass a C++-specific compiler option to a C/ObjC file. If I comment out this line in the main CMakeLists.txt
file:
ADD_DEFINITIONS(-std=c++11)
则不再传递标志的任何的文件。然而,C ++的文件确实需要它。我如何获得 cmake的
来包括C文件标记为C ++文件,但不?
then it no longer passes the flag to any file. However, the C++ files do need it. How do I get cmake
to include the flag for C++ files, but not for C files?
推荐答案
使用 CMAKE_CXX_FLAGS
来设置C ++的特定标志:
Use CMAKE_CXX_FLAGS
to set c++ specific flags:
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11")
这篇关于CMake的禁用-std = C ++ 11 C文件标志的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!