g++ findet /usr/include nicht



  • Hallo zusammen,

    Ich habe ein Problem dass g++ beim kompilieren die standard includes nicht findet. Zum Beispiel:

    #include <iostream>
    
    int main()
    {
    	return 0;
    }
    

    kompilieren mit

    g++ -Wall main.cpp
    

    liefert:

    main.cpp:7:20: error: iostream: Datei oder Verzeichnis nicht gefunden
    

    Benütze Debian wheezy mit gcc version 4.4.5 (Debian 4.4.5-8) und aktuellen build-essential 11.5 0 installiert.
    Wo kann da das Problem liegen?



  • kater k schrieb:

    #include <iostream>
    
    int main()
    {
    	return 0;
    }
    

    kompilieren mit

    g++ -Wall main.cpp
    

    liefert:

    main.cpp:7:20: error: iostream: Datei oder Verzeichnis nicht gefunden
    

    Zeile 7 enthält kein iostream. Aber angenommen es geht tatsächlich nicht, dann weiter mit der in dieser Situation üblichen Fehlerbehandlung:

    • Hast du was an den Einstellungen vom g++ verdreht?
    • Was liefert ls /usr/include/c++/*/iostream ?
    • Geht es mit aptitude reinstall build-essentials ?

    Weil eigentlich sollte es out of the box funktionieren.



  • ich habe mal alles neu installiert mittels:

    sudo aptitude reinstall build-essential dpkg-dev g++ gcc libc6-dev libc-dev  make
    

    das resultat bleibt aber das gleiche...

    $ ls /usr/include/c++/*/iostream
    /usr/include/c++/4.3.5/iostream  /usr/include/c++/4.4/iostream
    /usr/include/c++/4.3/iostream    /usr/include/c++/4.5.2/iostream
    /usr/include/c++/4.4.5/iostream  /usr/include/c++/4.5/iostream
    

    ich kann dir nicht sagen ob ich an g++ was verdreht habe. bis anhin habe ich mit IDE gearbeitet (eclipse CDT und Solaris Studio) und da hat bisher alles immer geklappt 🙂

    Wo stellt man die include pfade etc. für g++ ein?

    EDIT:
    gerade bemerkt:

    $ which g++
    /usr/local/cuda/bin/g++
    

    Das scheint der Fehler zu sein? Wie korrigiere ich das? Soll wohl auf /usr/bin/g++-4.5 zeigen oder?



  • kater k schrieb:

    Wo stellt man die include pfade etc. für g++ ein?

    Die uebergibst Du ihm per -I-Option. /usr/include sollte normalerweise drin sein.

    gerade bemerkt:

    $ which g++
    /usr/local/cuda/bin/g++
    

    Das scheint der Fehler zu sein? Wie korrigiere ich das? Soll wohl auf /usr/bin/g++-4.5 zeigen oder?

    Hast Du selbst irgendein CUDA-SDK installiert? Wenn Du das entsprechende Verzeichnis aus dem Pfad ($PATH) rauswirfst, sollte alles wieder passen. Allerdings waere es vielleicht sinnvoller, sich anzusehen, wie man die CUDA-Developertools korrekt installiert und die auch mit /usr/include spielen laesst.



  • Dieser Thread wurde von Moderator/in nman aus dem Forum Linux/Unix in das Forum Compiler- und IDE-Forum verschoben.

    Im Zweifelsfall bitte auch folgende Hinweise beachten:
    C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?

    Dieses Posting wurde automatisch erzeugt.



  • Ja die CUDA Treiber und das CUDA SDK habe ich für ein anderes Projekt gebraucht. Hab den Pfad mal aus .profile auskommentiert und jetzt funktioniert es wieder korrekt.

    Besten Dank für deine Hilfe.



  • kater k schrieb:

    gerade bemerkt:

    $ which g++
    /usr/local/cuda/bin/g++
    

    Das scheint der Fehler zu sein? Wie korrigiere ich das? Soll wohl auf /usr/bin/g++-4.5 zeigen oder?

    Falls dich die "richtige" Lösung interessiert: sowas löst man mit update-alternatives --config g++ .


Anmelden zum Antworten