2016-05-31 22 views
-1

Ich habe gerade CodeLite und die neueste Version des TDM-GCC-Compilers installiert. Es unterstützt sowohl C++ 11 als auch C++ 14. Wenn ich jedoch ein Programm unter Verwendung von nullptr schreibe, sagt es mir immer noch, dass 'nullptr' was not declared in this scope.nullptr nicht deklariert auch mit C++ 11 und C++ 14 aktiviert

enter image description here

Was habe ich für nullptr tun, um vom Compiler akzeptiert werden?

+11

Nur eine Vermutung, vielleicht überschreibt die letzte Option '-std = c99' die anderen' -std' Optionen. Aber nochmal, nur raten :) – Rakete1111

+0

@ Rakete1111 wenn ich 'Delete' ->' Apply' -> 'OK' anklicke und die Build Einstellungen erneut öffne, wird die' -std = c99' Option erneut angewendet. Von dem, was ich sagen kann, gibt es keine Möglichkeit, diese Funktion –

+0

FWIW zu deaktivieren, '-std = c99' gilt nur für C-Programme und' -std = C++ 14' gilt nur für C++ - Programme. Nur das eine oder das andere wird gelten; Wenn Sie beide in einem einzelnen gcc-Aufruf angeben, erhalten Sie Warnungen, dass eine Option nicht angewendet wird (ich weiß nicht, ob diese Warnungen über die GUI übertragen werden). Wenn der Compiler glaubt, dass Ihr Programm in C ist, haben Sie gewonnen habe offensichtlich keinen Zugriff auf 'nullptr'. – rici

Antwort

1

Sie müssen C++ 11 für Ihr Projekt aktivieren. Der Dialog, den Sie anzeigen, ermöglicht es Ihnen, die tatsächlichen Schalter zu ändern, die an den Compiler für verschiedene Optionen gesendet werden (ich werde das später erklären).

Erstens, um C++ 11 für Ihr Projekt zu aktivieren, klicken Sie mit der rechten Maustaste auf den Projektordner in der "Arbeitsbereich-Ansicht" (linker Bereich) und wählen Sie "Einstellungen" (alternativ aus der Hauptmenüleiste Arbeitsbereich-> Aktiv öffnen) Projekteinstellungen ... oder Alt-F7).

Wählen Sie "Compiler" aus der Liste der Einstellungen (linke Seite des Dialogfelds) und klicken Sie dann auf die Auslassungspunkte rechts neben der Option "C++ Compiler Options".

Dies wird den Dialog "Compiler-Optionen" anzeigen, hier können Sie aktivieren "C++ 11 Funktionen aktivieren [-std=c++11]".

Jetzt, wie ich am Anfang erwähnt habe, erlaubt der Dialog, den Sie zeigen, Sie die Schalter ändern, die an den Compiler gesendet werden. Angenommen, Sie verwenden einen Compiler mit einem Schalter "-std=gnu++11". Sie können diesen Schalter im Dialogfeld "Build-Einstellungen" (den Sie anzeigen) hinzufügen und dann in jedem Ihrer Projekte, die dieses Build-Tool verwenden, überprüfen.

Es ist ziemlich kompliziert, aber muss sein, um die Verwendung verschiedener Build-Tools zu erlauben, von denen der IDE-Autor noch nicht einmal gehört hat.

+0

ahhhhh vielen Dank! –

+0

Mit allem Respekt für @ n.m., Der Projekteinstellungen-Dialog ist vom Hauptmenü zugänglich, wenn auch nicht an einem völlig offensichtlichen Ort ("Arbeitsplatz" -Menü). – iwbnwif

+0

Warten Sie, das Tag, das "Enable C++ 11" darstellt, ist * benannt * '-std = C++ 11', was auch der Standardwert ist? Das ist ... besonders. – Yakk