Cross-Kompilieren von Boost für OpenWRT
Dieser Post zeigt, wie man Boost für OpenWRT cross-kompiliert. Wir verwenden das Teltonika-RUTX10-SDK, das bereits mit den relevantiven OpenWRT-Einstellungen für diesen Router vorkonfiguriert ist.
Voraussetzung ist, dass Sie:
- Das SDK heruntergeladen haben
- Es mit unseren Anweisungen oder dem offiziellen Handbuch gebaut haben, wenn Sie lieber länger lesen.
Wir gehen davon aus, dass sich das SDK in ~/rutos-ipq40xx-rutx-gpl befindet.
Boost kompilieren
Zuerst müssen Sie berücksichtigen, dass viele Boost-Bibliotheken Header-Only-Bibliotheken sind. Für diese Bibliotheken müssen Sie Boost nicht kompilieren, aber es könnte trotzdem einfacher sein, einen kompletten Boost-Ordner für die Installation vorzubereiten.
Laden Sie zuerst Boost herunter und entpacken Sie es. Führen Sie nun
./bootstrap.shaus, um bjam zu kompilieren.
Öffnen Sie nun project-config.jam im Boost-Ordner und fügen Sie die folgende Zeile am Anfang der Datei hinzu:
using gcc : openwrt : arm-openwrt-linux-muslgnueabi-g++ ;Führen Sie nun im Boost-Ordner das folgende Bash-Skript aus:
export STAGING_DIR=~/rutos-ipq40xx-rutx-gpl/staging_dir
export TOOLCHAIN=${STAGING_DIR}/toolchain-arm_cortex-a7+neon-vfpv4_gcc-8.4.0_musl_eabi
export CC=${TOOLCHAIN}/bin/arm-openwrt-linux-muslgnueabi-gcc
export CPP=${TOOLCHAIN}/bin/arm-openwrt-linux-muslgnueabi-g++
export PATH=$PATH:${TOOLCHAIN}/bin/
# Insert at the top of project-config.jam
# using gcc : openwrt : arm-openwrt-linux-muslgnueabi-g++ ;
rm -rf ~/boost_rutx10
mkdir -p ~/boost_rutx10/
./b2 --prefix=$HOME/boost_rutx10 install toolset=gcc-openwrt -sNO_COMPRESSION=1Nun ist Boost in ~/boost_rutx10 installiert, das include- und lib-Unterverzeichnisse hat.