2014-05-22 76 views
7

我正在嘗試構建bkchaind。一個構建選項是使用cmake,所以我安裝了Homebrew(OSX 10.9.1)。當我做cmake,不過,我得到:Cake文件的CMake禁用-std = C++ 11標誌

[ 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文件?

+0

也許看在的CMakeLists.txt文件(S),如果標誌被設置的地方? – Anycorn

+0

@Anycorn:哈,我是這麼做的,並且更新了這個問題。 – Claudiu

回答

10

使用CMAKE_CXX_FLAGS設置C++特定的標誌:

set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11") 
+1

相同的個人資料圖片!^_^ – 0x499602D2

+1

鯉魚和蝙蝠俠? – Anycorn

+0

不,你和OP已經壞了圖片圖標! :) – 0x499602D2