g ++ - Compiler: Kompilierung nicht möglich

1323

Dies ist das erste Mal, dass ich den g ++ - Compiler zum Kompilieren meiner C ++ - Programme verwende. Ich habe cygwin g ++ installiert. und ich versuche, ein sehr einfaches Programm auszuführen, um "Hallo" anzuzeigen, um zu sehen, ob es funktionieren würde.

Das Problem ist, dass bei jedem Pfad, den ich eingebe, der Fehler angezeigt wird:

*-bash: cd: c:program: No such file or directory* 

Der Pfad, den ich eingegeben habe, ist

*$ cd c:\program files\internet explorer* 

Dort habe ich cygwin installiert. Aber aus irgendeinem Grund funktioniert es nicht so, wie es sollte. Kann mir hier jemand helfen?

1
Ich empfehle Ihnen, cygwin in C: \ Cygwin (oder einem anderen Verzeichnis ohne Leerzeichen) zu installieren. Informationen zu Windows-Pfaden finden Sie unter http://cygwin.com/cygwin-ug-net/using.html#pathnames-win32 vor 12 Jahren 2
Wenn Sie nicht wirklich eine POSIX-Kompatibilitätsebene benötigen, empfehle ich Ihnen statt eines CygWin einen nativen Windows-Compiler (MinGW oder VC ++ werden am häufigsten verwendet). Matteo Italia vor 12 Jahren 0
es funktioniert jetzt ... :) ..... danke Ihnen allen für Ihre Hilfe ...... vor 12 Jahren 0

6 Antworten auf die Frage

3
Some programmer dude

Das hat nichts mit GCC oder dem g ++ - Compiler zu tun. Das Problem ist, dass die Eingabeaufforderung der Meinung ist, dass C: \ Programme \ Internet Explorer tatsächlich drei Argumente enthält: "C: \ Programm", "Dateien \ Internet" und "Explorer". Sie müssen es in Anführungszeichen wie "c: \ Programme \ Internet Explorer" setzen .

2
neuro

Sie müssen etwas um Ihren Pfad hinzufügen, da er Leerzeichen enthält:

cd "c:\Program files\internet explorer" 

my2c

aber jetzt, wenn ich gebe vor 12 Jahren 0
$ g ++ hello.cpp-o main Ich erhalte die Fehlermeldung g ++: hello.cpp-o: Keine solche Datei oder Verzeichnis g ++: main: Keine solche Datei oder Verzeichnis g ++: Keine Eingabedateien vor 12 Jahren 0
Sie haben ein Leerzeichen zwischen "hello.cpp" und "-o" vergessen. Matteo Italia vor 12 Jahren 0
Ich habe Platz verwendet ... aber ich habe den gleichen Fehler vor 12 Jahren 0
Versuchen Sie g ++ hello.cpp -o test.exe vor 12 Jahren 0
Ich habe versucht, aber ..... gleicher Fehler vor 12 Jahren 0
Sind Sie sicher, dass sich die Datei hello.cpp im aktuellen Verzeichnis befindet? Ich bin mir nicht sicher, aber könnten die Dateinamen die Groß- und Kleinschreibung berücksichtigen? (Kann hier nicht nachsehen, kein Cygwin) vor 12 Jahren 0
@amrithta: Bearbeiten Sie Ihre Frage (dies ist die SO-Art, Dinge zu tun) und geben Sie Ihre genauen Befehle ein ... neuro vor 12 Jahren 0
2
Mithrandir

Sie haben einen Platz auf Ihrem Weg ...

cd "c:\program files\internet explorer" 
0
Mark B

Dies ist nur tangential C ++, aber cd "c:\program files\internet explorer".

0
mkb

bash uses backslashes as escapes, similar to C string literals. Try cd '/cygdrive/c/Program Files/Internet Explorer' since bash also doesn't quite understand drive letters, and will consider the spaces as argument separators without the quotes.

0
Matteo Italia

CygWin ist eine POSIX-Emulationsebene. Daher verwenden CygWin-Programme POSIX-ähnliche Pfade, die nicht das Konzept von Laufwerksbuchstaben haben, aber alles unterliegt der /Hierarchie. Um es kurz zu machen: Um auf Windows-Pfade zuzugreifen, müssen Sie sich auf die Pfadhierarchie unter beziehen /cygdrive/. (siehe CygWin-Dokumentation )

Ihr c:\Program files\Internet Explorerwird /cygdrive/c/Program Files/Internet Explorer(natürlich müssen Sie Anführungszeichen hinzufügen, andernfalls interpretiert bash das Leerzeichen als Argumentstrennzeichen).

Edit : anscheinend macht dercdBefehl diese Zuordnung von selbst; Es ist jedoch zu beachten, dass CygWin-Programme tatsächlich den POSIX-Pfad und nicht den Windows-Pfad sehen.

Andererseits verstehe ich nicht, warum Sie CygWin verwenden sollten, wenn Sie nur in Standard C ++ programmieren: Sie benötigen wahrscheinlich keine POSIX-Emulationsebene, sondern einen nativen C ++ - Compiler für Windows. Sie können beispielsweise MinGW (den Windows-Port von gcc) oder Visual C ++ (dessen Express Edition kostenlos zur Verfügung steht) verwenden.