Gelöst: LINK : fatal error LNK1104: Datei "C:\Dokumente" kann nicht geöffnet werden.



  • Wollte gerade etwas in C++ testen (wg. Vergleich mit C#) und wollte dafür kein Projekt anlegen, sondern direkt von der Kommandozeile mit cl compilieren und linken. Dabei bekomme ich immer obigen Fehler selbst beim einfachsten Hello, world:

    #include <iostream>
    using namespace std;
    
    int main(int argc, char *argv[]) {
        cout << "Hello, world!" << endl;
        return 0;
    }
    

    Den Compiler rufe ich mit

    cl -EHsc hello.cpp

    auf. Habe schon gegoogelt, da kommt die Fehlermeldung häufig, aber mit anderer Dateiangabe und bei deutlich komplexeren Anwendungen (meist in Verbindung mit DLLs), trifft auf mich nicht nicht zu. Selbstverständlich sind die Systemvariablen für VC (VCVARS32.BAT) gesetzt.

    Auch sonst scheint alles mit der Visual Studio-Installation zu stimmen, komplexe C#-Projekte lassen sich einwandfrei erstellen/debuggen, ...

    Ach so: Visual Studio 2005 Professional

    Edit:

    Aarrrggggghhhhhhhh Microsoft :-| Es liegt an der TEMP/TMP-Environment-Variable. Die zeigt unter Windows standardmäßig auf "C:\Dokumente und Einstellungen\..." und damit kommt "LINK" anscheinend nicht klar (Leerzeichen) und kann keine temporären Dateien anlegen und bricht ab.

    Lösung: in VCVARS32.BAT/VSVARS32.BAT den Pfad in Anführungszeichen einschließen (bzw. die Zeile unten in VCVARS32.BAT/VSVARS32.BAT ergänzen), z. B.:

    SET TEMP="C:\Dokumente und Einstellungen*UserName*\Lokale Einstellungen\Temp"

    Dann geht es.



  • Just for Google - doesn'nt recognize edited messages.


Log in to reply