EDYCJA: Okazuje się, że to naprawdę nie jest specyficzne dla Eclipse Kepler. Musiałem użyć tego samego procesu dla Eclipse Juno. Problem polegał na tym, że wydaje się, że w innych postach brakuje odpowiedzi na to samo pytanie.
Używam Eclipse Kepler dla C ++ i próbuję używać C ++ 11 i otrzymuję błędy. Podczas kompilacji pojawia się błąd
błąd: pętle for oparte na zakresie są niedozwolone w trybie C ++ 98
Postępowałem zgodnie z instrukcjami z postu
Obsługa Eclipse CDT C ++ 11 / C ++ 0x
a rozwiązanie podane dla Eclipse Juno nie działa.
Różne komentarze sugerowały ponowne uruchomienie zaćmienia oraz czyszczenie i odbudowę. To nie ma znaczenia.
źródło
-std=c++11
w którym mówi się wprost, a przebudowany cały indeks, nadal pokazuje crapload z nierozpoznanego std :: cout, std :: set, etc ...compiler spec
i nadal nie działa. std :: shared_ptr i to samo nie zostało rozpoznane. Chociaż kiedyś działał na starszej maszynie z juno.Obsługa języka C ++ 11 w Eclipse Kepler Service Release 1 (identyfikator kompilacji: 20130919-0819)
W najnowszej wersji Eclipse Kepler SR1 wystarczy dodać -std = c ++ 11
Linia „Polecenie pobrania specyfikacji kompilatora” powinna wyglądać następująco:
źródło
Od wersji CDT 8.3 ( dostępnej jako aktualizacja Keplera ) w ustawieniach kompilacji dostępna jest nowa opcja dialektu:
http://wiki.eclipse.org/CDT/User/NewIn83#Build
źródło
Używam Eclipse Kepler i aby to naprawić, zrobiłem to:
1 - Kliknij prawym przyciskiem myszy projekt >> Własności >> C / C ++ Build :: Settings
2 - Poszedłem do kompilatora GCC G ++ >> Różne >> Inne flagi
To rozwiązało mój problem!
Mam nadzieję, że to pomogło!
źródło
Uruchamiam tutaj eclipse indigo i cdt 8.0.2. Postępowałem zgodnie ze wszystkimi przewodnikami, ale nadal konieczne było ręczne zdefiniowanie preprocesora, aby znaleźć takie rzeczy, jak std :: unique_ptr. Plik nagłówkowy „memory” sprawdza to. Ustaw __cplusplus na 201103L na karcie „Symbole” w obszarze „Ścieżki i symbole” w „C ++ Ogólne” we właściwościach projektu.
źródło
Dodanie flagi dialektu "-std = c ++ 11" do właściwości projektu-> C / C ++ Build -> Ustawienia -> Ustawienia narzędzi (kompilator GCC C ++ -> Dialekt) rozwiązało mój problem w Eclipse Kepler, poza ustawieniami podanymi powyżej.
źródło
Używam Eclipse Luna i nie ma „Ustawienia narzędzi” w C / C ++ Build -> Ustawienia. I DID dodałem -std = c ++ 11 do wiersza poleceń kompilatora specyfikacji w „C / C ++ Ogólne -> Preprocessor Includes -> Providers” zgodnie z sugestią. Ale to nadal nie zaspokoiło zdolności mojego indeksatora do rozwiązania embrace ().
Poszukałem więc w pliku nagłówkowym i stwierdziłem, że funkcje embrace są zależne od __cplusplus> = 201103L. Dlatego właśnie dodałem symbol preprocesora „__cplusplus” i nadałem mu wartość 201103.
Trochę hackish, ale indeksator jest zadowolony. (A pliki makefile definiują flagi mojej kompilacji, a nie projekt eclipse)
źródło
Rozwiązanie dostarczone przez MrEricSir działa dopiero po zainstalowaniu najnowszego Eclipse Oxygen CDT. Nie działa to dla mnie z Mars CDT.
źródło