我正在尝试构建 bkchaind .一种构建选项是使用 cmake,因此我使用 Homebrew (OSX 10.9.1) 安装了它。但是,当我执行 cmake
时,我得到:
[ 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
文件中注释掉这一行:
ADD_DEFINITIONS(-std=c++11)
然后它不再将标志传递给任何 文件。但是,C++ 文件确实需要它。如何让 cmake
为 C++ 文件包含标志,但不为 C 文件包含标志?
最佳答案
使用 CMAKE_CXX_FLAGS
设置特定于 C++ 的标志:
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11")
关于c++ - CMake 为 C 文件禁用 -std=c++11 标志,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23818497/