gdb与gdbserver的编译
1、源码下载:
gdb源码下载地址 以gdb-10.2版本为例,(版本体积一大一小交替出现,小版本疑似存在问题)
解压:tar zxvf gdb-10.2.tar.gz
2、编译gdb(运行在主机端)
方法1(推荐)
创建文件夹_build并进入
mkdir _build cd _build
配置、编译、安装
1 ../configure --prefix=/data1/peifeixiang/work/project/gdb-10.2/_result --host=x86_64-linux-gnu --target=aarch64-linux-gnu --program-prefix=aarch64-linux-gnu- 2 make 3 make install
--prefix=/data1/peifeixiang/work/project/gdb-10.2/_result:最终成果物保存位置
--host=x86_64-linux-gnu:编译链,宿主机gdb要运行的平台为x86_64架构的linux系统
--target=aarch64-linux-gnu:gdb要调试的程序运行在aarch64-linux-gnu架构的ARM开发板平台
--program-prefix=aarch64-linux-gnu-:成果物文件名前缀
参考: 交叉编译之./configure --build,--host,--target设置_configure交叉编译-CSDN博客
方法2
不进入 _build文件夹,直接在gdb-10.2文件夹下执行
1 ./configure --prefix=/data1/peifeixiang/work/project/gdb-10.2/_result --host=x86_64-linux-gnu --target=aarch64-linux-gnu --program-prefix=aarch64-linux-gnu- 2 make 3 make install
3、编译gdbserver(运行在嵌入式板端)(编译完gdb后,再用下面的方法编译gdbserver会报错,原因未知,需重新解压。。。。。。。)
1 ./configure --prefix=/data1/peifeixiang/work/project/gdb-10.2/gdbserver/_result --host=aarch64-linux-gnu --target=aarch64-linux-gnu --disable-gdb 2 make 3 make install
#静态编译
执行make前 进入gdb-10.2\gdbserver,打开Makefile,搜索 CFLAGS,将
1 CFLAGS = -g -O2 2 CXXFLAGS = -g -O2 3 CPPFLAGS =
改为
CFLAGS = -g -O2 -static CXXFLAGS = -g -O2 -static CPPFLAGS = -static
LDFLAGS 也同样修改
gdb或gdbservice过大的话可使用strip进行瘦身参考:https://developer.aliyun.com/article/243857、https://www.cnblogs.com/pengdonglin137/p/4751279.html
参考文件:
https://zhuanlan.zhihu.com/p/295099630
https://www.cnblogs.com/my_life/articles/10675094.html