Lubię używać gcc do kompilacji małych małych programów C i C ++ na moim głównym komputerze. Mam jednak także Raspberry Pi, a będąc komputerem jednordzeniowym o częstotliwości 700 MHz wolałbym nie wykonywać na nim prac programistycznych za każdym razem, gdy chcę utworzyć plik binarny. W jaki sposób (bo wiem, że jest jakiś sposób) kompiluję krzyżowo mój program dla Raspberry Pi przy użyciu mojego laptopa x86? I czy jest sposób, że mogę skompilować programy C (++) na Pi, ale wygenerować plik binarny x86? Jeśli to jakaś pomoc, „SoC to Broadcom BCM2835. Zawiera ARM1176JZFS z zmiennoprzecinkową ...” (zgodnie z oficjalnym FAQ Raspberry Pi ).
gcc
cross-compilation
raspberrypi
czterolistny
źródło
źródło
Odpowiedzi:
Używając kombinacji przeszukiwania
apt
repozytoriów i niezwykle doskonałych systemów Embedded Linux Systems (wydanie drugie, 2008, O'Reilly), znalazłem to:Jest to zarówno nazwa polecenia, jak i pakiet instalowany w celu jego uzyskania. Po wywołaniu działa dokładnie jak „wanilia”
gcc
, z tym wyjątkiem, że buduje pakiety dla architektury ARM (lub przynajmniej podzestawu zawierającego co najmniej BCM2835). Budowanie wbudowanych systemów Linux (str. 93-94) wyjaśnia, że nazwy używane do wywoływania narzędzi GNU w sposób kompilacji krzyżowej mają następujący format:Na
-gcc
końcu najwyższego przykładu znajduje się komponent służący do określania, której częścibinutils
chcesz użyć. Można go zamienić na inny komponent łańcucha narzędzi GNU, taki jakld
(linker) lubas
(asembler). Dlaarm-linux-gnueabi-gcc
,arm
to architektura,linux
jest jądrem,gnueabi
jest OS igcc
jest składnikiem. Gdzie jest producent? Najwyraźniej producenta można określić jako „nieznany”, ponieważ rzadko robi różnicę, lub całkowicie go pominąć (w tym by to zrobiłarm-linux-unknown-gnueabi-gcc
).źródło
Metoda oficjalnie udokumentowana
https://www.raspberrypi.org/documentation/linux/kernel/building.md ( GitHub )
Testowane w Ubuntu 17.10, repozytorium narzędzi w 5caa7046982f0539cf5380f94da04b31129ed521
źródło
Nie jestem pewien na 100%, ale używając https://tandrepires.wordpress.com/2012/08/01/raspberry-pi-openelec-pvr-dvb-t/ , możesz spróbować: 1) Wymagane biblioteki:
2) Skompiluj projekt z następującymi opcjami, gdzie N jest liczbą rdzeni procesora x86:
Mam nadzieję, że to pomoże. `
źródło
make
służy do kompilacji projektu skonfigurowanego do użycia make („PROJEKT = ARCHIWUM RPi = uzbrojenie PVR = tak make release -j N”, wcześniejszy materiał to tylko pęczek zmiennych powłoki). Teraz w rzeczywistościmake
używa gcc, ale aby użyć linii kodu, musiałbym uzyskać źródło make, a następnie przejrzeć większość z nich, szukając różnych części kodu, które dodałyby niezbędne argumenty do gcc. Ale dziękuję za próbę!