2014-05-22 15 views
7

Próbuję zbudować bkchaind. Jedną z opcji kompilacji jest użycie cmake, więc zainstalowałem ją z Homebrew (OSX 10.9.1). Kiedy zrobić cmake, choć pojawia się:CMake disable -std = C++ 11 flag dla plików C

[ 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' 

Jestem niezbyt pewny dlaczego cmake będzie próbował przekazać C++ - kompilator konkretną opcję w pliku C/objc. Jeśli komentarz na tej linii w głównym CMakeLists.txt pliku:

ADD_DEFINITIONS(-std=c++11) 

to nie przechodzi na flagę dowolnego pliku. Jednak potrzebne są pliki C++. Jak uzyskać cmake dołączenie flagi dla plików C++, ale nie dla plików C?

+0

Być może wyglądać w pliku (ów) CMakeLists.txt jeśli flagi jest ustawiona gdzieś? – Anycorn

+0

@Anycorn: Hah tak, właśnie to zrobiłem i zaktualizowałem pytanie. – Claudiu

Odpowiedz

10

Zastosowanie CMAKE_CXX_FLAGS ustawić C++ konkretne flagi:

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

To samo zdjęcie profilowe!^_^ – 0x499602D2

+1

karp i batman? – Anycorn

+0

Nie, ty i OP mają złamane ikony obrazu! :) – 0x499602D2