Leider habe ich Schwierigkeiten beim Übersetzen von Git für die ARMv6-Architektur.Wie kompiliere ich Git für ARM?
Aber bevor ich die Schritte beginnen beschreiben ich getroffen habe und Befehle, die ich eingegeben habe, sollte ich kurz auf die Build-Umgebung beschreiben:
- Ich bin Cross-Kompilierung auf Ubuntu 12.10 64-bit.
- Der Cross-Compiler ist unter
/home/my_name/cctoolchain
installiert (dieses Verzeichnis enthältbin/
,lib/
usw.).
Ich begann mit Greifen 1.8.2 von here. das Verzeichnis Nach dem Extrahieren Ich lief:
export PATH=$PATH:/home/my_name/cctoolchain/bin
Ich lief autoconf
auch sicherstellen, dass ./configure
auf dem neuesten Stand war. Dann aufgerufen ich ./configure
wie folgt:
./configure --prefix=/home/my_name/git-arm --build=x86_64-linux-gnu --host=arm-linux-androideabi
Dies lief für ein paar Sekunden und dann abgebrochen mit:
checking whether system succeeds to read fopen'ed directory... configure: error: in `/home/my_name/git-1.8.2': configure: error: cannot run test program while cross compiling
ich offen configure.ac
geknackt und entfernten Zeilen 806-825, den Test zu deaktivieren. Nachdem ich das getan hatte, musste ich auch die Zeilen 806-839 aus einem ähnlichen Grund entfernen.
Zu diesem Zeitpunkt konnte das Skript ./configure
abgeschlossen werden. Ich lief dann aufgeregt make
zu Git zu bauen und nach ein paar Momente, lief in diesen Fehler:
fetch-pack.c: In function 'fetch_pack': fetch-pack.c:928:16: error: 'struct stat' has no member named 'st_mtim' make: *** [fetch-pack.o] Error 1
Irgendwie habe ich das Gefühl, ich bin „es falsch zu machen“. Dies klingt nach etwas, das viel einfacher sein sollte als manuell Tests aus configure.ac
zu entfernen. Was vermisse ich?
Danke, Ihre Frage hat mir sehr geholfen! Der Befehl, der schließlich für mich funktionierte, war 'CC = Armv7l-Timesys-Linux-Gnuabi-GCC CFLAGS = "- Sysroot =/Home/Mme/Projekte/Arm-Cross-Sdk/Tags/0.1.8" LDFLAGS = "- -sysroot =/home/evadeflow/projekte/arm-cross-sdk/tags/0.1.8 "./configure --prefix =/home/evadeflow/git-arm --build = i386-linux-gnu --host = armv7l-timesys-linux-gnüabi'. (Das '--sysroot =' arg sollte für die meisten Leute nicht notwendig sein.) Ich musste auch einige Tests in 'configure.ac' auskommentieren, wie Sie es beschrieben haben (' ac_cv_fread_reads_directories' und 'ac_cv_snprintf_returns_bogus'), und make ausführen Konfigurieren Sie danach. – evadeflow