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?

questionAnswers(8)

yourAnswerToTheQuestion