在此记录一下,rk3568上gdb版本的编译问题,gdb的8.2版本,在openharmony4.0以后的版本,提示dwarf格式有问题,看不到调试信息。
1、arm下编译工具下载:
wget https://releases.linaro.org/components/toolchain/binaries/latest-5/arm-linux-gnueabi/gcc-linaro-5.5.0-2017.10-x86_64_arm-linux-gnueabi.tar.xz
下载后解压目录xxx
2、gdb10.0以后的版本
下载地址:ftp://ftp.gnu.org/gnu/gdb
下载所用的版本为gdb-10.2.tar.xz,随手下载10.0以后的版本,没有过多考虑。
下载后解压,然后在代码同级目录下,新建文件夹build,只是为了把编译的数据和原始代码分开,方便出问题,清除目录再编译
3、在build下,执行配置
../configure LDFLAGS=-static --prefix=/xxxx/gdbinstall -target=arm-linux-gnueabi --host=arm-linux-gnueabi CFLAGS="-O3 " LDFLAGS="-static -O3" CC="xxx/gcc-linaro-5.5.0-2017.10-x86_64_arm-linux-gnueabi/bin/arm-linux-gnueabi-gcc" CXX="xxx/gcc-linaro-5.5.0-2017.10-x86_64_arm-linux-gnueabi/bin/arm-linux-gnueabi-g++" AS="xxx/gcc-linaro-5.5.0-2017.10-x86_64_arm-linux-gnueabi/bin/arm-linux-gnueabi-as" AR="xxx/gcc-linaro-5.5.0-2017.10-x86_64_arm-linux-gnueabi/bin/arm-linux-gnueabi-ar"
其中xxx为arm编译工具的解压目录,另外在把编译工具的bin目录放到path里面
在home目录.bashrc文件最后加一句,export PATH=$PATH:xxx//gcc-linaro-5.5.0-2017.10-x86_64_arm-linux-gnueabi/bin
4、编译gdb
sudo su 切换为root用户
source /home/yyy/.bashrc 把编译工具bin目录加入到PATH里面
make -j8 等待编译成功
不确定为什么gdb编译一定要root用户,把gdb的源码目录已经设置为777,还会提示config.h找不到,在配置生成的日志里面,看到提示config.h已经生成,且没有改变,但本地却找不到config.h文件,令人抓狂。。。
5、附注:
编译之前,需要把编译相关的软件安装好,当然,这并不是必须的。
sudo apt-get update && sudo apt-get install binutils git git-lfs gnupg flex bison gperf build-essential zip curl zlib1g-dev gcc-multilib g++-multilib libc6-dev-i386 lib32ncurses5-dev lib32z1-dev libxml2-utils xsltproc unzip m4 bc gnutls-bin ruby