Wie führen Sie die binäre Datei in Linux
Habe ich eine Datei namens commanKT
und will das es läuft in einem Linux-terminal. Kann mir jemand helfen, indem Sie den Befehl diese Datei ausführen? Ich habe versucht ./commonRT
aber ich bin immer der Fehler:
"bash: ./commonrt: cannot execute binary file"
[blackberry@BuildMc MainApp]$ ls -al commonKT
-rwxrwxr-x. 1 sijith sijith 10314053 Feb 27 16:49 commonKT
sind Sie sicher, dass es ausführbar? versuchen Sie, verwenden Sie den Befehl
Vorausgesetzt, das problem ist nicht nur, eine Verwechslung über Namen (
Neben der Verwendung
Sorry für die falsche Datei Namen...den Namen Der Datei ist commanrt und was dieser name bedeutet
Warum diese Frage so viele upvotes? Es enthält so viele Varianten der Befragten mit dem Namen (commonrt, commonKT, commanKT, commonRT), dass es ist nicht einmal klar, was gefragt wurde. Auch interessant: Macht der Letzte Kommentar von Sijith bedeuten, dass es erhört wird? Und warum hast user1978011 erhalten bountys?
file
Vorausgesetzt, das problem ist nicht nur, eine Verwechslung über Namen (
commonrt
vs commonKT
), was bedeutet der Befehl file commonKT /bin/sh
sagen? Wenn es gibt zwei verschiedene Architekturen (vielleicht eine für Arme und eine für Intel), dann ist das, warum Sie können nicht führen Sie den ARM auf einem Intel-Rechner.Neben der Verwendung
file
ich auch vorschlagen, mit ldd
; vielleicht ist der dynamische linker oder einige core-shared-library ist anders oder fehlt....Sorry für die falsche Datei Namen...den Namen Der Datei ist commanrt und was dieser name bedeutet
Warum diese Frage so viele upvotes? Es enthält so viele Varianten der Befragten mit dem Namen (commonrt, commonKT, commanKT, commonRT), dass es ist nicht einmal klar, was gefragt wurde. Auch interessant: Macht der Letzte Kommentar von Sijith bedeuten, dass es erhört wird? Und warum hast user1978011 erhalten bountys?
InformationsquelleAutor Sijith | 2012-02-28
Du musst angemeldet sein, um einen Kommentar abzugeben.
Eine Binärdatei auszuführen, verwenden Sie:
./binary_name
.Wenn Sie einen Fehler erhalten:
werde es sein, weil es kompiliert wurde, mithilfe einer tool-Kette, die war für ein anderes Ziel, zu dem, was Sie versuchen zum ausführen des binären.
Zum Beispiel, wenn Sie kompilieren 'binary_name.c' mit
arm-none-linux-gnueabi-gcc
und versuchen, führen Sie das generierte binary auf eine x86 Maschine, erhalten Sie den oben genannten Fehler.InformationsquelleAutor Frazer
Ausführen einer Binär-oder .ausführen der Datei in Linux aus der shell verwenden Sie die dot Schrägstrich Freund
und wenn es nicht sagen, weil der Berechtigungen, die Sie könnten versuchen, diese vor dem ausführen
Hoffe es hilft
InformationsquelleAutor Olu Smith
Dem Volumen, in dem es auf ist montiert
noexec
.InformationsquelleAutor Ignacio Vazquez-Abrams
🙂 Wenn nicht Tippfehler, warum sind Sie mit
./commonRT
statt./commonKT
??./commonrt
in allen Kleinbuchstaben. 🙂InformationsquelleAutor Jagannath
Ist es möglich, dass Sie zusammengestellt binären mit inkompatiblen Architektur-Einstellungen auf dem build-host gegen die execution-host.
Kann man bitte haben Sie einen Blick auf die aktivierten target-Einstellungen über
auf dem build-host? Insbesondere die
COLLECT_GCC_OPTIONS
variable kann Ihnen wertvolle debug-Informationen. Dann haben Sie einen Blick auf die CPU-Funktionen auf Ihre Ausführung-host überAusschau nach Abweichungen wie
-msse4.2 [enabled]
auf dem build-host, aber eine fehlendesse4_2
- flag in der CPU-Fähigkeiten.Wenn das nicht hilft, bitte die Ausgabe von
ldd commonKT
auf beide bauen und execution-host.InformationsquelleAutor user1978011
Dies ist eine Antwort auf @craq :
Ich bin ein bisschen überrascht, dass Sie hatten, um "es zu executable' - mein
gcc
immer setzt das executable-flag selbst. Dies lässt mich vermuten, dassgcc
nicht erwarten, dass dies die endgültige ausführbare Datei, oder, dass Sie nicht erwarten, dass es lauffähig auf diesem system.Nun habe ich versucht, nur das erstellen der Objekt-Datei, etwa so:
(
hello.c
ist eine typische "Hallo Welt" - Programm.) Aber meine Fehlermeldung ist ein bisschen anders:Auf der anderen Seite, auf diese Weise, den Ausgang des
file
- Befehls ist identisch zu verkaufen:In der Erwägung, dass, wenn ich korrekt kompilieren, die Ausgabe ist viel länger.
Was ich sage, ist: ich vermute, es hat etwas zu tun mit der Art, wie Sie Sie kompilieren und verknüpfen Sie Ihren code. Vielleicht können Sie etwas Licht auf, wie Sie das tun?
InformationsquelleAutor chw21
Oder die Datei ist ein Dateityp und/oder der Architektur, dass Sie einfach nicht laufen bei deiner hardware und/oder es wird auch kein fallback binfmt_misc Eintrag zu handhaben, das format in irgendeiner anderen Art und Weise. Verwenden
file(1)
zu bestimmen.InformationsquelleAutor jørgensen
Der einzige Weg, der funktioniert für mich (extrahiert aus hier):
Dann führen Sie es durch das schreiben
Wenn Sie eine Erlaubnis erhalten Fehler, den Sie haben könnte, um starten Sie Ihre Anwendung mit root-rechten:
InformationsquelleAutor Fábio
Ihrer Zusammenstellung option -c macht Ihre Zusammenstellung einfach Zusammenstellung und Montage, aber keine Verbindung.
InformationsquelleAutor user2919481
Wenn es nicht ein Tippfehler ist, wie schon früher gesagt, es könnte sein, falsche compiler-Optionen wie kompilieren 64 bit unter 32 bit. Es muss nicht eine toolchain.
InformationsquelleAutor musbach
vollständigen Pfad für die binary-Datei. Zum Beispiel: /home/vitaliy2034/binary_file_name. Oder
verwenden Sie die Richtlinie "./+binary_file_name".
'./' in unix-system es wieder volle Pfad zum Verzeichnis, in das Sie öffnen Sie das terminal(shell).
Ich hoffe, es hilft.
Sorry, für meine englische Sprache)
InformationsquelleAutor Віталій Білий