记录一次RK3399移植GDB16.2

为了快速定位程序问题,需要在RK3399开发板上编译gdb16.2,并使用gdb16.2调试程序。

unsetunset编译环境unsetunset

  • Ubuntu24.04
  • gcc-linaro-10.2.1-2021.01-x86_64_aarch64-linux-gnu

unsetunset前提条件unsetunset

  • GDB官网:https://sourceware.org/gdb/

  • 源码下载地址:https://sourceware.org/pub/gdb/releases/?C=M;O=D

  • gdb16.2版本需要依赖高版本gmp和mpfr,因此需要先交叉编译这两个软件。

unsetunset编译gmp-6.3.0unsetunset

wget https://gmplib.org/download/gmp/gmp-6.3.0.tar.xz

xz -d gmp-6.3.0.tar.xz

tar -xvf gmp-6.3.0.tar

cd gmp-6.3.0

./configure --prefix=/opt/software/gdb-16.2-aarch64-10.2.1/gmp --build=x86_64-pc-linux-gnu --host=aarch64-linux-gnu --target=aarch64-linux-gnu CC=/opt/tools/gcc-linaro-10.2.1-2021.01-x86_64_aarch64-linux-gnu/bin/aarch64-linux-gnu-gcc CXX=/opt/tools/gcc-linaro-10.2.1-2021.01-x86_64_aarch64-linux-gnu/bin/aarch64-linux-gnu-g++ LD=/opt/tools/gcc-linaro-10.2.1-2021.01-x86_64_aarch64-linux-gnu/bin/aarch64-linux-gnu-ld AR=/opt/tools/gcc-linaro-10.2.1-2021.01-x86_64_aarch64-linux-gnu/bin/aarch64-linux-gnu-gcc-ar RANLIB=/opt/tools/gcc-linaro-10.2.1-2021.01-x86_64_aarch64-linux-gnu/bin/aarch64-linux-gnu-ranlib

make -j4

sudo make install

编译mpfr-4.2.1

wget https://www.mpfr.org/mpfr-current/mpfr-4.2.1.tar.gz

tar -zxvf mpfr-4.2.1.tar.gz

cd mpfr-4.2.1

./configure --prefix=/opt/software/gdb-16.2-aarch64-10.2.1/mpfr-4.2.1 --build=x86_64-pc-linux-gnu --host=aarch64-linux-gnu --target=aarch64-linux-gnu CC=/opt/tools/gcc-linaro-10.2.1-2021.01-x86_64_aarch64-linux-gnu/bin/aarch64-linux-gnu-gcc CXX=/opt/tools/gcc-linaro-10.2.1-2021.01-x86_64_aarch64-linux-gnu/bin/aarch64-linux-gnu-g++ LD=/opt/tools/gcc-linaro-10.2.1-2021.01-x86_64_aarch64-linux-gnu/bin/aarch64-linux-gnu-ld AR=/opt/tools/gcc-linaro-10.2.1-2021.01-x86_64_aarch64-linux-gnu/bin/aarch64-linux-gnu-gcc-ar RANLIB=/opt/tools/gcc-linaro-10.2.1-2021.01-x86_64_aarch64-linux-gnu/bin/aarch64-linux-gnu-ranlib --with-gmp=/opt/software/gdb-16.2-aarch64-10.2.1/gmp-6.3.0

make -j4

sudo make install

gdb16.2编译

./configure --prefix=/opt/software/gdb-16.2-aarch64-10.2.1/gdb-16.2 --build=x86_64-pc-linux-gnu --host=aarch64-linux-gnu --target=aarch64-linux-gnu CC=/opt/tools/gcc-linaro-10.2.1-2021.01-x86_64_aarch64-linux-gnu/bin/aarch64-linux-gnu-gcc CXX=/opt/tools/gcc-linaro-10.2.1-2021.01-x86_64_aarch64-linux-gnu/bin/aarch64-linux-gnu-g++ LD=/opt/tools/gcc-linaro-10.2.1-2021.01-x86_64_aarch64-linux-gnu/bin/aarch64-linux-gnu-ld AR=/opt/tools/gcc-linaro-10.2.1-2021.01-x86_64_aarch64-linux-gnu/bin/aarch64-linux-gnu-gcc-ar RANLIB=/opt/tools/gcc-linaro-10.2.1-2021.01-x86_64_aarch64-linux-gnu/bin/aarch64-linux-gnu-ranlib --with-gmp=/opt/software/gdb-16.2-aarch64-10.2.1/gmp --with-mpfr=/opt/software/gdb-16.2-aarch64-10.2.1/mpfr-4.2.1 CFLAGS="-I/opt/software/gdb-16.2-aarch64-10.2.1/gmp/include" CXXFLAGS="-I/opt/software/gdb-16.2-aarch64-10.2.1/gmp/include"

make -j4

make install

声明:本内容为作者独立观点,不代表电子星球立场。未经允许不得转载。授权事宜与稿件投诉,请联系:editor@netbroad.com
觉得内容不错的朋友,别忘了一键三连哦!
赞 2
收藏 2
关注 38
成为作者 赚取收益
全部留言
0/200
成为第一个和作者交流的人吧