2014-12-25 6 views
10

Ich habe derzeit ein C++ Projekt mit einem benutzerdefinierten Makefile. Ich sage Eclipse, einfach make zu nennen, und das Makefile handhabt alles. Das Projekt baut gut auf, aber Eclipse hebt generalisierte Lambda-Captures als "Syntaxfehler" hervor. Soweit ich aus verstehen:Eclipse Luna Indexer für C++ 14 mit benutzerdefinierten Makefile

https://stackoverflow.com/a/835019/4076418,

es ist ein Problem mit dem CDT Indexer der C++ 14-Syntax nicht zu verstehen.

Ich habe versucht, nach den Antworten hier:

Eclipse CDT C++11/C++0x support

https://stackoverflow.com/a/13635080/4076418

aber sie behandeln nicht meinen Fall, die Eclipse-Luna + ein Projekt individuelle Make-Datei ist + C++ 14.

Diese Frage wahrscheinlich im Zusammenhang mit mir, aber es hat keine Antwort [Ich habe nicht die Möglichkeit haben, auch den Indexer ändern]:

https://stackoverflow.com/q/24950192/4076418

Alle Ideen, wie den Indexer kennen zu erkennen C++ 14 Funktionen?

P.S. C++ 11-Features werden aus irgendeinem Grund nicht als Syntaxfehler hervorgehoben. Ich sollte auch beachten, dass ich clang 3.4.2 im Makefile verwende; offensichtlich unterstützt es C++ 14. Die verfügbare g ++ - Version ist jedoch 4.4.7 und unterstützt daher nicht C++ 14. Könnte das irgendwie das Problem sein? Dass der CDT das g ++ des Systems für den Indexer verwendet? Und wenn ja, wie ändere ich das, ohne g ++ aktualisieren zu müssen (Ich arbeite mit eingeschränkten Benutzerrechten und die Aktualisierung wäre ein großer Aufwand)?

+0

Großartig. Ich habe meine Konfiguration noch mehr durcheinander gebracht. Früher erkannte es C++ 11-Funktionen. Jetzt hebt es sogar Dinge wie std :: vector hervor. Ich gebe auf ... – elatalhm

+0

Haben Sie versucht, den Compiler-Flags in Eclipse '-std = C++ 14' hinzuzufügen? – user2205930

Antwort

0

AFAIK Eclipse Luna unterstützt C++ 14 insgesamt nicht. Sie werden wahrscheinlich auf Eclipse Neon upgraden müssen. Ich benutze Neon, der Parser funktioniert, ich benutze kein benutzerdefiniertes Makefile, aber

Ich habe Luna in der Vergangenheit verwendet, aber sogar C++ 11 Unterstützung war manchmal schwer zu installieren.