Jak zainstalować kompilator krzyżowy Raspberry Pi na moim komputerze z systemem Linux?
Próbuję uzyskać kompilację krzyżową dla Raspberry Pi działającego na moim komputerze Ubuntu.
Podczas moich pierwszych prób korzystałem z kompilatora arm-linux-gnueabi, który jest dostępny w repozytorium Ubuntu. Mam to działa. Udało mi się zbudować wszystkie moje zależności i użyć kompilatora krzyżowego w moim projekcie cmake.
Uważam jednak, że powinienem używać wersji hf, więc przełączyłem się na arm-linux-gnueabihf. Wtedy zdałem sobie sprawę, że to nie działa z Raspberry Pi, ponieważ jest to armv6.
Po jakimś Googlingu znalazłemwstępnie zbudowany toolchain z GitHub.
Pobrałem toolchain, ale tak naprawdę nie rozumiem, jak go „zainstalować”. Wyodrębniłem pliki do mojego katalogu domowego. Struktura katalogów wygląda następująco:
/gcc-linearo-arm-linux-gnueabihf-raspbian
/arm-linux-gnueabihf
/bin
(contains g++, gcc, etc)
/lib
(contains libstdc++ library)
/bin
(contains arm-linux-gnueabihf-g++, arm-linux-gnueabihf-...)
/lib
(gcc lib stuff)
Jeśli zmienię katalog na folder bin INNER, mogę bez problemu skompilować program testowy z terminala.
~/tools/arm-bcm2708/gcc-linaro-arm-linux-gnueabihf-raspbian/
arm-linux-gnueabihf/bin$ g++ test.cpp -o test
Następnie próbowałem skompilować program testowy w folderze OUTER bin, który zawiera prefiksowane wersje narzędzi.
~/tools/arm-bcm2708/gcc-linaro-arm-linux-gnueabihf-raspbian/bin$
arm-linux-gnueabihf-g++ test.cpp -o test
Jednakże, gdy próbuję teraz użyć kompilatora (spoza wewnętrznego katalogu bin), nie może znaleźć biblioteki współdzielonej libstdc ++, która pochodzi z toolchainem:
arm-linux-gnueabihf-gcc: error while loading shared libraries:
libstdc++.so.6: cannot open shared object file: No such file or directory.
Ponadto chcę mieć możliwość korzystania z kompilatora bez konieczności przechodzenia do katalogu bin. Próbowałem więc dodać katalog bin OUTER (ponieważ chcę wersje z prefiksami) i oba katalogi lib do mojego PATH:
export PATH=$PATH:~/tools/.../bin
export PATH=$PATH:~/tools/.../lib
export PATH=$PATH:~/tools/.../.../lib
Powoduje to jednak ten sam błąd. Jak mam „zainstalować” toolchain, aby móc korzystać z toolchaina z dowolnego miejsca, tak jak mogę, gdy używam kompilatorów krzyżowych z repozytorium Ubuntu?