GDB工具的交叉编译
某项目需要离线GBD工具支持调试。过程中遇到不少坑。先记录下来。
1、 下载gdb:
下载地址为:
http://ftp.gnu.org/gnu/gdb/
按照一般的想法,最新版本越好,因此下载8.2这个版本。当然,凡事无绝对。我们以gdb-8.2.tar.gz 这个文件为例。
2、 解压缩:
tar -xzvf gdb-8.2.tar.gz
3、 进入该目录
cd gdb-8.2/
4、 配置
./configure --target=arm-linux --program-prefix=arm-linux- --prefix=/home/roth-qt/gdb/arm-gdb
注:–target=arm-linux意思是说目标平台是运行于ARM体系结构的linux内核;–program-prefix=arm-linux-是指生成的可执行文件的前缀,比如arm-linux-gdb,–prefix是指生成的可执行文件安装在哪个目录
5、 编译、安装
make
make install
make的过程中遇到了错误
*** A compiler with support for C++11 language features is required.
查了一下,是因为编译工具版本不够导致,需要升级到gcc-4.9。
Gcc版本下载地址http://ftp.gnu.org/gnu/gcc/
Arm-linux-gcc 版本下载地址https://www.linaro.org/downloads/
在下载了gcc4-9-3之后,进行配置时发现有对其他库的依赖
configure: error: Building GCC requires GMP 4.2+, MPFR 2.4.0+ and MPC 0.8.0+.
下载GMP、MPFR和MPC
官网下载GMP:https://gmplib.org/
官网下载MPFR:http://www.mpfr.org/mpfr-current/#download
Gnu下载MPC:http://ftp.gnu.org/gnu/mpc/
需要按照顺序安装GMP、MPFR和MPC
安装GMP
./configure --prefix=/usr/local