Скачиваем linaro toolchain с этого адреса:
arm-linux-gnueabihf 32-bit Armv7 Cortex-A, hard-float, little-endian и распаковываем, например, в каталог /opt/
.
Далее можно поставить символьную ссылку, чтобы корневой путь toolchain был удобным:
ln -s gcc-linaro-7.3.1-2018.05-x86_64_arm-linux-gnueabihf /opt/gcc-linaro
Примечание: данная сборка имеет множество повторяющихся файлов. Данный скрипт освободит 137 Мбайт. Запускать из каталога gcc-linaro.
cd bin rm arm-linux-gnueabihf-c++ ln -s arm-linux-gnueabihf-g++ arm-linux-gnueabihf-c++ rm arm-linux-gnueabihf-gcc ln -s arm-linux-gnueabihf-gcc-7.3.1 arm-linux-gnueabihf-gcc rm arm-linux-gnueabihf-ld ln -s arm-linux-gnueabihf-ld.bfd arm-linux-gnueabihf-ld cd .. cd arm-linux-gnueabihf rm -r lib ln -s libc/lib lib rm bin/* for t in ar as ld ld.bfd ld.gold nm objcopy objdump ranlib readelf strip do ln -s ../../bin/arm-linux-gnueabihf-$t bin/$t done rm libc/usr/libexec/getconf/* for t in POSIX_V6_ILP32_OFF32 POSIX_V6_ILP32_OFFBIG POSIX_V7_ILP32_OFF32 POSIX_V7_ILP32_OFFBIG XBS5_ILP32_OFF32 XBS5_ILP32_OFFBIG do ln -s ../../bin/getconf libc/usr/libexec/getconf/$t done cd .. cd share/man/man1 rm arm-linux-gnueabihf-g++.1 ln -s arm-linux-gnueabihf-gcc.1 arm-linux-gnueabihf-g++.1
export ARCH=arm export CROSS_COMPILE=arm-linux-gnueabihf- export PATH=/opt/gcc-linaro/bin:$PATH
После этого в командах make
уже не нужно указывать архитектуру и тип кросс-компиляции.
export PATH=/opt/gcc-linaro/bin:$PATH cd libserialport-0.1.1 ./configure --host=arm-linux-gnueabihf --prefix=<PREFIX>
make make install
Если не нужна отладочная информация, то вместо make install
дать команду
make install-strip
export CC="arm-linux-gnueabihf-gcc" export CPP="arm-linux-gnueabihf-gcc -E" export AR="arm-linux-gnueabihf-ar" export PATH=/opt/gcc-linaro/bin:$PATH cd zlib-1.2.11 ./configure --prefix=<PREFIX> make make install