Ik gebruik Eclipse Helios en ik heb g++-4.6 geïnstalleerd. Ik hoop dat ik me niet vergis dat g++4.6 C++ 11-functies implementeert. Ik heb een C++-project gemaakt dat de trefwoorden nullptr en auto gebruikt. De build geeft de volgende fouten:-
../{filename}.cpp:13:13: error: ‘nullptr’ was not declared in this scope
../{filename}.cpp:14:2: warning: ‘auto’ will change meaning in C++0x; please remove it [-Wc++0x-compat]
Eigenlijk bouwde het tot gisteren prima. Ik krijg deze vandaag uit het niets. Help me dit probleem op te lossen.
Antwoord 1, autoriteit 100%
Volgens de GCC-pagina voor C++11:
Als u C++0x-ondersteuning wilt inschakelen, voegt u de opdrachtregelparameter -std=c++0x toe aan uw g++-opdrachtregel. Of, om GNU-extensies in te schakelen naast C++0x-extensies, voeg -std=gnu++0x toe aan uw g++-opdrachtregel. GCC 4.7 en hoger ondersteunen ook -std=c++11 en -std=gnu++11.
Heb je gecompileerd met -std=gnu++0x
?
Antwoord 2, autoriteit 37%
Eindelijk gevonden wat te doen. Het -std=c++0x compiler-argument toegevoegd onder Project Properties -> C/C++ Build -> Instellingen -> GCC C++-compiler -> Diversen. Het werkt nu!
Maar hoe voeg je deze vlag standaard toe aan alle C++-projecten? Iemand?
Antwoord 3, autoriteit 11%
U gebruikt g++ 4.6-versie, u moet de vlag -std=c++0x aanroepen om te compileren
g++ -std=c++0x *.cpp -o uitvoer
Antwoord 4, autoriteit 7%
Is dat een echte compilerfout of een code-analysefout? Soms kan de code-analyse een beetje schetsmatig zijn en ongeldige fouten rapporteren.
Om codeanalyse voor het project uit te schakelen, klikt u met de rechtermuisknop op uw project in de Project Explorer, klik op Eigenschappen en ga vervolgens naar het tabblad C / C++ Algemeen en vervolgens CODE-analyse. Klik vervolgens op “Projectinstellingen gebruiken” en schakel deze uit die u niet wenst.
Weet u zeker dat u zich vasthoudt met de C++ 11-compiler?
Antwoord 5, Autoriteit 5%
Ga naar Instellingen – & GT; Compiler…
En voeg vlag toe aan “Have G ++ Volg de komende C++ 0x ISO C++ Taalstandaard [STD = C++ 0x]
Antwoord 6
Ik voeg de “, -std = C++ 0x” toe na “-C-Fessage-length = 0”, onder projecteigenschappen – & GT; C / C++ Build – & GT; Instellingen – & GT; GCC C++ Compiler – & GT; Diversen. Vergeet niet om de komma “,” als de seperator toe te voegen.
Antwoord 7
Proberen met een andere versie van GCC werkte voor mij – GCC 4.9 in mijn geval.