it-swarm.com.de

Binärdatei kann nicht mit Bash-Programm ausgeführt werden, wird jedoch mit ./Programm ausgeführt

Ich möchte unity3d auf meiner Bash ausführen, um Alias- und Desktop-Einträge zu erstellen. Dies erweist sich jedoch als schwieriger.

Der Titelfehler erscheint Ich versuche den Befehl:

bash path/to/program 

Das Durchsuchen der Website scheint ein Kompatibilitätsproblem zu sein. Wenn ich also den Befehl file versuche, ist die Ausgabe:

program: ELF 64-bit LSB executable, x86-64, version 1 (GNU/Linux), dynamically linked, interpreter /lib64/ld-linux-x86-64.so.2, for GNU/Linux 2.6.24, BuildID[sha1]=8020f3d60eff5b41c53e6b60a9e2d43802e28f93, not stripped

während mein System x86_64 ist.

allerdings wenn ich direkt in den Ordner gehe und das Programm als starte

./program

das programm läuft normalerweise.

Ich sehe nicht ein, wie das ein Kompatibilitätsproblem mit meinem System sein kann, wenn ich das Programm mit ./program aber nicht mit Bash-Programm ausführen kann

Ich verwende zsh und bin mir nicht sicher, ob dies in irgendeiner Weise stört.

1
user2832080

Wenn Sie bash some/file ausführen, liest bash diese Datei, analysiert ihren Inhalt gemäß den Syntaxregeln von bash und führt die resultierenden Befehle aus. Gültige Dateien werden in der Regel als "Skripte" bezeichnet, und ihr Inhalt entspricht weitgehend dem, was Sie tatsächlich in eine Shell eingeben. Kompilierte Programme enthalten Maschinenanweisungen. Sie verwenden zsh. Erwarten Sie, dass es die Maschinenanweisungen versteht? Zsh tut es nicht und bash auch nicht.

Wenn Sie einen Befehl mit bash ausführen möchten, verwenden Sie die Option -c:

bash -c '/some/command'

Es macht jedoch nicht viel Sinn, dies zu tun, wenn der Befehl selbst ausführbar ist. Wenn Sie es mit /some/command ausführen können, verwenden Sie es direkt.

4
muru

An der Eingabeaufforderung in bash, zsh oder einer anderen Shell können Sie /path/to/program oder cd /path/to; ./program schreiben, beide sollten dasselbe Ergebnis liefern .. dass das Programm ausgeführt wird.

Die Datei gibt an, dass es sich um ein binäres ausführbares Programm handelt, im Gegensatz zu einem Skript in einer Sprache, das von einer Shell oder einem anderen Programm interpretiert werden muss.

1
Soren A