Ausführen einer .exe-Datei in cygwin.

450
Megabrukman

Ich bin absolut neu in CYGWIN und Bash insgesamt, also denke ich, dass es irgendwo eine Antwort in einer Dokumentation gibt, aber es ist mir nicht gelungen, sie zu finden.

Ich habe zwei Dateien, die in einem Verzeichnis vorhanden sind: file und file.exe . Wenn ich eine Datei (mit dem CYGWIN-Terminal) anrufe, wird mir der Fehler "Binärdatei kann nicht ausgeführt: Ausführungsformatfehler" ausgeführt (weil auf die Datei zugegriffen wird ), aber wenn ich file.exe rufe, funktioniert es gut. Ich habe im Handbuch festgestellt, dass "das Shellskript Vorrang hat und für die Ausführung von Dateien ausgewählt ist ", aber es scheint, dass es in meiner Situation falsch ist. Also, was soll ich tun, um file.exe Datei in Terminal aufzurufen ? Danke im Voraus.

ps ./file funktioniert auch nicht; ./file.exe funktioniert gut

0

2 Antworten auf die Frage

0
harrymc

Cygwin folgt den Linux-Regeln, für die es keine Standarderweiterungen für ausführbare Dateien gibt. Solche Dateien werden als ausführbar definiert, indem sie ihre Attribute mit dem chmodBefehl und nicht mit ihrer Erweiterung ändern.

Sie sollten die Dateien nicht mit demselben Namen aufrufen, da "file" nicht "file.exe" aufruft.

Vielen Dank für Ihre Antwort! Ja, ich habe versucht, das Attribut durch `chmod + x file.exe` zu ​​ändern, aber es hat sich nichts geändert. = ( Megabrukman vor 5 Jahren 0
Das Problem ist das Vorhandensein von "file". Das Festlegen der Attribute von "file.exe" hilft nicht. Cygwin startet "file.exe" nur, wenn Sie "file.exe" ausführen. Es wird "file" ausgeführt, wenn Sie "file" eingeben. harrymc vor 5 Jahren 0
0
matzeri

Benennen Sie das filein etwas anderes um. Das sollte reichen

mv file file2 

Die .exeso genannten magischen Handler innerhalb Cygwin werden dann behandeln file.exeund fileals Synonym.
Bitte beachten Sie auch, dass dies fileauch ein Befehl eines Basispakets ist

$ which file /usr/bin/file $ cygcheck -f $(which file) file-5.32-1 

Es ist keine gute Idee, einen doppelten Programmnamen zu haben