Ich sehe eine Menge von Konfliktinformationen und möchte etwas Klärung. build, Host und ZielCross-Compilation-Terminologien --- Build, Host und Ziel
Es gibt drei Systemnamen, die die Build kennt: die Maschine, die Sie bauen auf (Build), die Maschine, die Sie für (Host) bauen, und die Maschine, für die GCC Code für (Ziel) erzeugt. Wenn Sie GCC konfigurieren, geben Sie diese mit --build =, --host = und --target = an.
Eigentlich verstehe ich nicht, was der Unterschied zwischen Host und Ziel in der obigen Definition.
Einige andere Seite sagt
‚host‘ ist die Maschine (oder Architektur oder Plattform), die Sie den Code zu kompilieren verwenden; "Ziel" ist die Maschine (oder Architektur oder Plattform), die den Code ausführen soll.
Das macht Sinn für mich, aber in dieser Erklärung ist die Host immer das gleiche wie der Build ?? Ich bin ziemlich verwirrt.
In meinem Fall konfiguriere ich so, dass der Compiler (GCC) auf x86_64 Maschine läuft und die ausführbare Binärdatei auf ARM läuft. Das Programm ist in C geschrieben, daher ist der Compiler GCC.
./configure --build=x86_64 --host=x86_64 --target=arm-linux-gnueabihf
make
make install
Es klingt wie bauen, Host beide x86_64 und Ziel ist am Arm. Ist das korrekt?
Ich kompiliere mein eigenes eingebettetes Programm, das auf Jenkins Maschine (x86_64) läuft. Und das eingebettete Programm läuft auf ARM-basierter Maschine.
Welches genaue Programm kompilieren Sie? Irgendeine Cross-Compiler-Version von [GCC] (http://gcc.gnu.org/) oder einfach dein eigenes Programm mit einer bereits verfügbaren 'gcc'-Binärdatei? Zeigen Sie einige [MCVE] (zeigen Sie also eine Quelle in Ihrer Frage an) und zeigen Sie die exakten * Kompilierungsbefehle an, die Sie verwenden (und erklären Sie, auf welchen Computern sie laufen). Erzählen Sie von Ihren Systemen (was ist der Host, der Build-Rechner, der Zielrechner). Bitte ** bearbeiten Sie Ihre Frage **, um sie zu verbessern. Es ist derzeit verwirrend. –
Auch bei der Bearbeitung ist deine Frage unklar: Was bedeutet "Ich konfiguriere so, dass der Compiler" bedeutet?* Was ist konfiguriert und wie ?? * Bitte ** verbessern Sie Ihre Frage ** noch mehr. * Geben Sie die genauen Befehle * beteiligt. Erklären Sie, auf welchen Computern sie ausgeführt werden. ** Was für einen Compiler verwendest du? ** * und * ** Wie benutzt du es? ** –
Natürlich ist Englisch nicht deine Muttersprache (und auch nicht für mich; ich bin Franzose). Also verbessern Sie Ihre Formulierung (vielleicht mit Hilfe eines Wörterbuchs) und geben Sie die * genauen Befehle *, die Sie verwenden. IMHO der Satz "Ich konfiguriere so, dass der Compiler auf x86_64 Maschine läuft und die binäre ausführbare Datei läuft auf ARM" macht keinen Sinn (Sie sagen nicht, was und wie Sie konfigurieren). Da Englisch für Sie nicht einfach ist, müssen Sie in Ihrer Frage mehr Informationen und Redundanz hinzufügen. –