一、準(zhǔn)備
環(huán)境:ubuntu22.04為剛剛安裝,未安裝gcc等包
vi ~/.bashrc輸入
export PATH=$PATH:/opt/gcc-arm-8.3-2019.03-x86_64-arm-linux-gnueabihf/bin
保存,reboot
安裝:
sudo apt install cmake
sudo apt install gawk
sudo apt install bison
第一步:安裝glibc-2.34
mkdir build
cd build
../configure --prefix=${PWD}/install \
--build=arm-linux-gnu \
--host=arm-linux-gnu \
--target=arm-linux-gnu \
CC=arm-linux-gnueabihf-gcc \
CXX=arm-linux-gnueabihf-g++ \
CPP=arm-linux-gnueabihf-cpp \
--disable-multilib libc_cv_forced_unwind=yes
make
make install
第二步:編譯gmp-6.1.0
./configure --prefix=${PWD}/install/ --host=arm-linux --disable-assembly CC=arm-linux-gnueabihf-gcc CXX=arm-linux-gnueabihf-g++
make
make install
第三步:編譯mpfr-3.1.4
./configure --prefix=${PWD}/install --host=arm-linux CC=arm-linux-gnueabihf-gcc CXX=arm-linux-gnueabihf-g++ --with-gmp=/opt/gmp-6.1.0/install
make
make install
第四步:編譯mpc-1.03
./configure --prefix=${PWD}/install --host=arm-linux CC=arm-linux-gnueabihf-gcc CXX=arm-linux-gnueabihf-g++ --with-gmp=/opt/gmp-6.1.0/install --with-mpfr=/opt/mpfr-3.1.4/install
make
make install
第五步:編譯isl-0.18
將/opt/gmp-6.1.0/install/lib目錄下所有庫(kù)文件拷貝到gcc-arm-8.3-2019.03-x86_64-arm-linux-gnueabihf/arm-linux-gnueabihf/libc/usr/lib/,
然后執(zhí)行
./configure --prefix=${PWD}/install --host=arm-linux CC=arm-linux-gnueabihf-gcc CXX=arm-linux-gnueabihf-g++ --with-gmp-prefix=/opt/gmp-6.1.0/install
make
make install
第六步:編譯gcc-9.5
刪除cc
cd /usr/bin
sudo rm cc
sudo ln -s /opt/gcc-arm-8.3-2019.03-x86_64-arm-linux-gnueabihf/bin/arm-linux-gnueabihf-gcc cc
reboot
然后安裝一些庫(kù),要不然編譯不過(guò)
sudo apt-get install lsb-core lib32stdc++6
然后執(zhí)行
./configure --prefix=${PWD}/build \
--with-gmp=/opt/gmp-6.1.0/install \
--with-mpfr=/opt/mpfr-3.1.4/install \
--with-mpc=/opt/mpc-1.0.3/install \
--with-isl=/opt/isl-0.18/install \
CC=arm-linux-gnueabihf-gcc \
CXX=arm-linux-gnueabihf-g++ \
CPP=arm-linux-gnueabihf-cpp \
--host=arm-linux-gnueabihf \
--target=arm-linux-gnueabihf \
--with-newlib \
--without-headers \
--enable-initfini-array \
--disable-nls \
--disable-shared \
--disable-multilib \
--disable-decimal-float \
--disable-threads \
--disable-libatomic \
--disable-libgomp \
--disable-libquadmath \
--disable-libssp \
--disable-libvtv \
--disable-libstdcxx \
--enable-checking=release \
--enable-languages=c,c++
make -j8 all-gcc
make install-gcc
編譯結(jié)果
編譯gmp遇到問(wèn)題:
問(wèn)題:Oops, mp_limb_t is 64 bits, but the assembler code
解決:https://gist.github.com/cwoac/5844398
I realised the first failure was because it tried to build the 64 bit code on a 32 bit platform.
The attached gist is the failure when running with --32-bit.
This can be worked around by adding --disable-assembly to the configure call
同時(shí):
sudo apt-get install m4文章來(lái)源:http://www.zghlxwxcb.cn/news/detail-714429.html
備注:
gcc-9.5源碼根目錄/contrib/download_prerequisites 里面地有需要依賴(lài)的庫(kù)源碼版本,可以直接執(zhí)行./contrib/download_prerequisites下載文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-714429.html
到了這里,關(guān)于Ubuntu22.04 交叉編譯gcc9.5 for arm的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!