Wie kann ich ausführen a.exe mit der Cygwin-Shell?
Ich habe eine C-Datei in Eclipse unter Windows erstellt und dann mit Cygwin zu dem Verzeichnis navigiert. Ich habe gcc in der C-Quelldatei aufgerufen und a.exe wurde produziert. Ich möchte laufen a.exe.
./a.exe an der Eingabeaufforderung
./a funktioniert auch; Cygwin ist schlau genug, um zu behandeln a.exe wie a (aus Gründen der Kompatibilität mit Unix, das keine Standardeinstellung verwendet .exe Suffix für ausführbare Dateien).
– Keith Thompson
1. Juni 2015 um 21:18 Uhr
Sie sollten es einfach aufrufen können, indem Sie den Dateinamen eingeben. Möglicherweise müssen Sie ./a.exe aufrufen, da das aktuelle Verzeichnis aus Sicherheitsgründen normalerweise nicht im Pfad liegt.
Geben Sie einfach ./a in die Shell ein
Weißt du warum das funktioniert. ./a.exe macht Sinn, aber ohne Erweiterung sollte dies nicht laufen. Irgendein bestimmter Grund?
– Saurabh Rana
10. Oktober 2013 um 15:47 Uhr
Das wäre wahrscheinlich Cygwin, der Dinge herausfindet und schlau ist. UNIX-Programme haben normalerweise keine Dateiendung, wenn also cygwin darauf abzielt, unter Windows ein UNIX-Feeling zu vermitteln, ist es sinnvoll, die Möglichkeit zu geben, die Programmdateierweiterung auszulassen.
– Lindhe
18. Dezember 2014 um 22:23 Uhr
Um eine Datei im aktuellen Verzeichnis auszuführen, ist die zu verwendende Syntax: ./foo
Wie von Allain erwähnt, ./a.exe ist der richtige Weg, um eine.exe im Arbeitsverzeichnis mit Cygwin auszuführen.
Hinweis: Möglicherweise möchten Sie die verwenden -o Parameter zu cc um Ihren eigenen Ausgabedateinamen anzugeben. Ein Beispiel hierfür wäre: cc helloworld.c -o helloworld.exe.
Thomas schrieb:
Anscheinend verhält sich gcc nicht wie in Die Programmiersprache C beschrieben
Es tut im Allgemeinen. Damit Ihr Programm unter Windows läuft, muss es auf .exe enden, „die C-Programmiersprache“ wurde nicht für Windows-Programmierer geschrieben. Wie Sie gesehen haben, emuliert cygwin viele, aber nicht alle Funktionen einer POSIX-Umgebung.
goldene Mitte
gcc unter cygwin generiert keine ausführbare Linux-Ausgabedatei des Typs „ELF 32-Bit LSB Executable“, aber es generiert eine ausführbare Windows-Datei des Typs „PE32 Executable for MS Windows“, die eine Abhängigkeit von cygwin1.dll hat, also muss es unter der Cygwin-Shell ausgeführt werden. Wenn Sie es unabhängig unter der DOS-Eingabeaufforderung ausführen müssen, muss sich die cygwin1.dll in Ihrem Windows-PFAD befinden.
-ANZEIGE.
Bernhard
Anscheinend verhält sich gcc nicht wie in Die Programmiersprache C beschrieben, wo es heißt, dass der Befehl cc helloworld.c eine Datei namens a.out erzeugt, die durch Eingabe von a.out an der Eingabeaufforderung ausgeführt werden kann.
Ein Unix hat sich seit langem nicht mehr standardmäßig so verhalten (also können Sie den Namen der ausführbaren Datei einfach ohne ./ am Anfang schreiben). Es heißt a.exe, weil Windows es sonst nicht ausführt, da es Dateitypen von der Erweiterung erhält.
14085000cookie-checkWie führe ich eine Datei in Cygwin aus?yes