Zadałem już to pytanie na temat przepełnienia stosu, ale chciałbym wiedzieć, czy komuś udało się zbudować zestaw narzędzi GCC 4.7 do kompilacji krzyżowej ARM (dla hosta Linux x86 / x86-64). Istnieje wiele instrukcji budowania GCC ze źródła i wiele dostępnych kompilatorów krzyżowych dla wersji GCC wcześniejszych niż 4.7, ale nie najnowsza.
Kompilacja na Rasp Pi sama działa dobrze, ale jest trochę za wolna dla celów praktycznych.
Zależy mi na kompilacji i chciałbym korzystać z najnowszych i najlepszych narzędzi.
software-development
cross-compilation
gcc
tlhIngan
źródło
źródło
Odpowiedzi:
Znalazłem te instrukcje Jak zbudować kompilator krzyżowy dla twojego Raspberry Pi . Jest to świetne przejście przez użycie
crosstool-ng
narzędzia, które upraszcza konfigurację kompilacji między kompilatorami DUŻO (ma ładny interfejs oparty na przekleństwach) i obsługuje GCC 4.7.Wykonałem te kroki i zakończyłem się sukcesem kompilacji kompilatora krzyżowego 4.7.
crosstool-ng
z tutaj (użyłem wersji 1.15.2)../configure
/make
/install
cd
do niego.ct-ng menuconfig
. Otrzymasz ładny zestaw menu do konfiguracji kompilacji.Wybierz odpowiedni katalog prefiksów . Jest to katalog, w którym kompilator i biblioteki zostaną zainstalowane (wszystko jest w porządku, po prostu upewnij się, że katalog jest pusty).
Przejdź do menu Opcje celu .
Możesz także ustawić parametr zmiennoprzecinkowy na softfp (zobacz to, aby uzyskać więcej informacji), ale hardfp jest bardziej odpowiedni dla Raspbian.
Przejdź do menu biblioteki C i wybierz jedno. Domyślnie jest to eglibc, ale ten nie zbudował się dla mnie dobrze, więc użyłem glibc (najnowsza wersja).
crosstool-ng
ct-ng build
w tym samym katalogu. Poczekaj chwilę (w moim przypadku około 45 minut), a Twój kompilator krzyżowy powinien być gotowy.Wydaje się, że działa świetnie!
źródło
W rzeczywistości najnowsze i najlepsze narzędzia nie muszą być tworzone samodzielnie. W repozytorium GitHub Raspberry Pi Tool znajdziesz łańcuchy
X86_64
ix686
narzędzia do oprogramowania do kompilacji krzyżowej.Polecam korzystanie z
x86-linux64-cross-arm-linux-hardfp
zestawu narzędzi, ponieważ skompiluje się on dla Hard Floating Point, co spowoduje znacznie szybszy system.Uwaga: Jeśli używasz istniejącego jądra, będziesz musiał użyć łańcucha narzędzi, który pasuje do jądra. Aplikacje HardFP nie będą działać na jądrze SoftFP.
Aby skorzystać z zestawu narzędzi, po prostu sprawdź repozytorium:
Ten
--depth
parametr oznacza, że nie musisz również czekać na pobranie historii repozytorium (ponieważ nie będziemy jej używać).Następnie dodaj pliki binarne do zmiennej PATH:
Lub, aby zachować ŚCIEŻKĘ:
Aby skompilować z łańcuchem narzędzi, możesz teraz dodać
CROSS_COMPILE
parametr. Na przykład podczas uruchamianiamake
:Aby to ułatwić, możesz
bashrc
ponownie zapisać zmienną w :i teraz używaj zmiennej podczas kompilacji:
źródło
Zauważ, że budując zestaw narzędzi za pomocą ct-ng na centos 6.3 na 64-bitowym systemie, byłem zmuszony odznaczyć opcję statycznego linkowania libstdc ++, ponieważ statyczne linkowanie nie było obsługiwane na platformie (najwyraźniej).
Ponadto, chociaż dobrze byłoby użyć wstępnie zbudowanego łańcucha narzędzi z repozytorium git, łańcuch ten nie działa na Centos 6.3 - prawdopodobnie dlatego, że został zbudowany dla bardziej nowoczesnego systemu lub czegoś takiego. Tak naprawdę nie próbowałem tego zaniedbać.
źródło
Ten przewodnik może być pomocny.
Pomogło mi to zacząć działać. Dodałem także kilka uwag na temat strojenia.
źródło
Jeśli chcesz skorzystać z szybkiego hosta do kompilacji rzeczy dla twojego RPI, sugeruję pracę w różnych środowiskach poprzez chroot i QEMU. Nawiasem mówiąc, to zastępuje cross kompilator bez żadnych problemów.
Po prostu skonfiguruj różne środowisko Debiana za pomocą deboostrap / multistrap
(patrz rozdział QEMU / podejście debootstrap) i gotowe.
źródło
Jeśli masz zamiar dokonać kompilacji krzyżowej z OS X: oto świetny artykuł (i jedyny, który znalazłem w Internecie, który znalazłem).
Największą rzeczą jest to, że autor zapewnia kompletnie skompilowany łańcuch narzędzi , więc wystarczy pobrać, rozpakować i zamontować obraz dmg. I to wszystko, jesteś gotowy do kompilacji krzyżowej.
źródło
Jeśli zainstalowałeś wersję 64-bitową Ubuntu i narzędzia z Raspberry Pi SVN, a pojawia się błąd:
po prostu biegnij:
źródło
Carlson-Minot Inc. zapewnia wstępnie przygotowany łańcuch narzędzi zarówno dla celów ARM typu bare-metal, jak i GNU / Linux. Ten zestaw narzędzi jest oparty na zestawie narzędzi Mentor Graphics Sourcery Lite z poprawkami i adaptacjami do kompilacji w systemie OS X. Zobacz
źródło