2012-05-03 16 views
5

Jestem użytkownikiem Mac OS X Lion, który używa Xcode dla C++ i wydaje się, że nie są dostępne żadne aktualizacje dla Xcode. Wydaje mi się, że nie mogę skompilować kodu wyłącznego dla C++ 11, ale z jakiegoś powodu, myślałem, że Apple dostało C++ 11 w dużym stopniu zaimplementowane. Tak, mam wsparcie dla narzędzi wiersza poleceń.Mam problem z C++ 11 w Xcode

To znowu może być ja. Jeśli tak, czy istnieje jakiś rodzaj IDE, który obsługuje C++ 11, czy jakikolwiek sposób na uaktualnienie?

+4

Xcode 4.2 jest dostarczany z clang i clang obsługuje C++ 11 częściowo. Możesz przełączyć się na clang w opcjach kompilacji. –

+0

Możesz używać Macports, wysyłają wszystkie najnowsze wersje gcc http://www.macports.org/ – inf

Odpowiedz

8

Używam Xcode i ustawić następujące ustawienia:

C++ język dialekt: C++ 11 lub GNU ++ 11

C++ Library Standart: libC++ (C++ standard LLVM z biblioteki C++ 11 wsparciem)

wersja Xcode: 4.3.2

XCode project settings

+0

To wydaje się działać! Dzięki! – Whovian

+0

Nie zapomnij również wybrać kompilatora LLVM. – sbooth

+2

Mam problem z łączeniem std lib. Jeśli wybiorę bibliotekę standardową libC++ (LLVM C++ z obsługą C++ 11), to linker nie może łączyć "std :: string :: find (char, unsigned long) const" i innych symboli, jeśli wybiorę libstC++ (biblioteka GNU C++ Standart) w nagłówku są błędy kompilatora "nie można znaleźć :: std :: move". Co ja robię źle? Jak mogę to rozwiązać? Dzięki. – BergP

3

Jeśli korzystasz z Xcode 4.3, istnieje kilka istotnych ustawień projektu, które wymagają korzystania z funkcji C++ 11. Pierwszym z nich jest użycie kompilatora clang. Coś jak

GCC_VERSION = com.apple.compilers.llvm.clang.1_0 

w twojej .xcconfig będzie go ustawić, czy można korzystać z GUI.

Następnie trzeba powiedzieć LLVM C++, które standardowo używać:

CLANG_CXX_LANGUAGE_STANDARD = gnu++11 

To uczyni możliwości językowych jak zakresie w oparciu o, konstruktorów delegowanych, etc. dostępne.

Wreszcie, jeśli chcesz używać C++ 11 możliwości STL (takich jak std::unordered_map) trzeba używać libC++ STL:

CLANG_CXX_LIBRARY = libc++ 
+0

Naprawdę przepraszam, jestem bardzo nowy, ale jak dokładnie to zrobię? Najwyraźniej są to polecenia LLVM lub coś w tym stylu, ale naprawdę nie wiem, co robić. – Whovian

+0

Jeśli nie używasz plików .xcconfig, możesz wybrać plik projektu w inspektorze Xcode i powinieneś zobaczyć listę opcji podobnych do tego, co opublikował Alexander. – sbooth

0

Na XCode 5/2.4.9 OpenCV, mogę wybrać:

XCode settings

I buduje bez błędu. Jeśli ustawię libC++ bez określania dialektu języka C++, otrzymam ten sam problem co OP