CMake的禁用-std = C ++ 11 C文件标志 [英] CMake disable -std=c++11 flag for C files

查看:6940
本文介绍了CMake的禁用-std = C ++ 11 C文件标志的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我试图建立 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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆