Ich bin in der nicht so sonnigen Welt der Cross-Compilation gefangen.Der Versuch, eine kompilierte ausführbare Datei auf dem Zielgerät auszuführen, schlägt fehl mit: Keine solche Datei oder Verzeichnis
Ich versuche eine einfache Hallo Welt-Anwendung für meine BeagleBone Black (die einen TI Cortex-A8-Prozessor läuft) zu kompilieren.
Zunächst einmal ich kompiliert und lief erfolgreich die Hallo Welt Anwendung auf x86 mit gcc
Dann änderte ich meine Kompilierungseinstellungen auf die folgenden:
arm-linux-gnueabi-gcc -c -O0 -g3 -Wall main.c -o bin/obj/main.o
arm-linux-gnueabi-gcc bin/obj/main.o -o bin/hello_world
ich die Datei über SCP auf die übertragene BeagleBone und ausführbar Erlaubnisse chmod +x hello_world
Auf ihr laufen (./hello_world
), meine einzige Antwort ist:
-bash: ./hello_world: No such file or directory
Der Ausgang des file
entspricht dem /sbin/init
wie ich erwarten würde:
$ file hello_world
hello_world: ELF 32-bit LSB executable, ARM, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.32, BuildID[sha1]=0x24b659b7a41fe043a6f4649d4ebfb5e692ebf0c7, not stripped
$ file /sbin/init
/sbin/init: ELF 32-bit LSB executable, ARM, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.26, BuildID[sha1]=0xd21f6957ec031a27d567b3d5e6aa14b9e0c30c37, stripped
Das Ergebnis ldd
ist:
$ ldd hello_world
not a dynamic executable
ich eine geeignete Plattform und CPU-Typ versucht, das Hinzufügen, meine Wechsel Zusammenstellung zu:
arm-linux-gnueabi-gcc -c -O0 -g3 -Wall -march=armv7-a -mtune=cortex-a8 main.c -o bin/obj/main.o
arm-linux-gnueabi-gcc bin/obj/main.o -o bin/hello_world
Das fing anfänglich an, mir einen neuen Fehler zu geben: , aber ich konnte diesen Fehler seitdem nicht mehr zurückbekommen, da er jetzt No such file or directory
zurückgibt. Ich vermute, dass dieser Versuch nur eine schlechte Übertragung war oder so.
p.s. Ausgabe von 'uname -a' ist' Linux beaglebone 3.8.13-bone70 # 1 SMP Fr. Jan 23 02:15:42 UTC 2015 armv7l GNU/Linux' – CJxD
Versuchen Sie hallo_world von einer noexec Partition auszuführen? – adelphus
Haben Sie versucht, es statisch zu verknüpfen? Ich vermute, Sie haben nicht die erforderlichen Bibliotheken auf Ihrem BB .. –