Eclipse content assist erkennt std :: thread nicht, kompiliert aber korrekt

8

Ich benutze Ubuntu 14.04.

Schritte, die ich gemacht habe, um zu reproduzieren:

  1. Erstellen Sie ein neues C ++ - Projekt (Neu - & gt; C ++ - & gt; Hello World-Projekt), das ich TestStdThread

  2. nannte
  3. Ändern Sie den Code in der Hauptdatei wie folgt:

    %Vor%
  4. Gehe zu TestStdThread - & gt; Eigenschaften - & gt; C / C ++ Build - & gt; Einstellungen - & gt; GCC C ++ - Compiler und ändern Sie die Optionen Befehl von g++ in g++ -std=c++11

  5. Gehe zu TestStdThread - & gt; Eigenschaften - & gt; C / C ++ Build - & gt; Einstellungen - & gt; GCC C ++ - Compiler - & gt; Fügen Sie /usr/include zu den Include-Pfaden (-I) hinzu und fügen Sie pthread.h zu Include-Dateien (-include)

  6. hinzu
  7. Gehe zu TestStdThread - & gt; Eigenschaften - & gt; C / C ++ Build - & gt; Einstellungen - & gt; GCC C ++ Linker - & gt; Bibliotheken, fügen Sie pthread zu den Bibliotheken (-l) hinzu und fügen Sie /usr/lib/x86_64-linux-gnu zum Bibliothekssuchpfad (-L)

  8. hinzu
  9. TestStdThread - & gt; Projekt erstellen

  10. Klicken Sie auf "Ausführen"

Es gab keine Buildfehler. Eclipse sagte mir, dass das Projekt Fehler hatte und fragte, ob ich es trotzdem ausführen wollte, und als ich ja sagte, war die Ausgabe korrekt: You have 4 cores. . Eclipse unterstrich jedoch immer noch den std::thread::hardware_concurrency -Teil in rot und meldete ihn (bei Hover) als "Funktion 'hardware_concurrency' konnte nicht aufgelöst werden" und std::thread wurde nicht angezeigt, wenn std:: Ctrl eingegeben wurde + Leerzeichen .

Das ist der Bash-Befehl, den ich benutzt habe, um zu finden, wo meine pthread -Dateien innerhalb von /usr ( /usr/share weggelassen wurden, da sie viele doc-Dateien enthalten, nach denen ich nicht suche):

%Vor%     
Doorknob 18.07.2014, 23:13
quelle

1 Antwort

9

Gehe zu Project - & gt; Properties - & gt; C/C++ General - & gt; Preprocessor include paths, etc - & gt; Providers - & gt; CDT GCC Builtin Compiler Settings und fügen Sie -std=c++11 den Compiler-Spezifikationen hinzu.

Sie können dies auch für alle Projekte tun, die zu Window - & gt; Preferences - & gt; C/C++ - & gt; Build - & gt; Settings - & gt; Discovery und fügen Sie -std=c++11 an die CDT GCC Builtin Compiler Settings specs an.

Stellen Sie sicher, dass Sie Ihr Projekt anschließend erneut indizieren.

Diese Anweisungen gelten für Eclipse Luna (4.4.0), für frühere Versionen sind die Pfade ähnlich.

    
codestation 19.07.2014, 02:11
quelle