0

Ich bin auf Ubuntu auf 32-Bit-Computer.Ich möchte ein Beispielprogramm wie hello.c (siehe unten) für ARM-Architektur zu kompilieren.So für dieses Kreuz Compilation I installierte Tools über die Eingabeaufforderung .ie Liste der Tools, die ich installiert haben:sehen Sie die Kreuz kompilierte ausführbare Ausgabe für ARM-Architektur auf Host-Maschine

sudo apt-get install gcc-arm-linux-gnueabi  
sudo apt-get install build-essential 
sudo apt-get install binutils-multiarch 

und schließlich ich mit dem Befehl

arm-linux-gnueabi-gcc hello.c -o hello 

und es kompiliert erfolgreich mein Source-Programm zusammengestellt, aber wenn ich ausführen keine Ausgabe

./hello 

bash: ./hello: Kann keine Binärdatei ausführen: Exec format error

was wäre das Problem?
Ich wusste, dass für Cross-Compiler bedeutet einen Prozess des Kompilierens und Erstellen ausführbaren Codes für eine andere Plattform als die, auf denen der Compiler läuft. Nicht sagen, wegen der Architektur Unterschied es auftritt.Falls in einigen Fällen, wenn mein Quellcode Es gibt einige Segmentierungsfehler oder Fehler, die ich beheben kann, indem ich das Programm (Anzeigeausgabe) in der Hostmaschine selbst ausführe, bevor ich es an die Zielrechnerarchitektur vom Typ ARM sende.

#include<stdio.h> 
int main(void) 
{ 
printf("hello world\n"); 
} 
+0

Für Ausführen ausführbare Datei, die nicht für Ihren laufenden Arhiteticoire passt verwenden Sie virtuelle Maschine oder Emulator. Außerdem können Sie für gängige Debug-Probleme Ihre ausführbare Datei für * Host-Maschine * kompilieren, damit Sie sie ausführen können. – Tsyvarev

Antwort

0

Sie sollten qemu Emulator für Arm auf Ihrem Host-Computer verwenden, um Ihr Testprogramm für Arm-Prozessor auszuführen. dies ist sehr einfach arm file syem, die auf qemu laufen wird, können Sie es verwenden