版本:gdb-12.1
编译gdbserver时出现如下错误:
我简单编译了一下,以下作为参考;
# 下载源码
wget http://ftp.gnu.org/gnu/gdb/gdb-12.1.tar.xz
# 解压
tar -xvf gdb-12.1.tar.xz
# 进入 gdb 源码目录
cd gdb-12.1
# 配置交叉编译环境,按自己的路径来
export ARCH=arm
export CROSS_COMPILE=arm-buildroot-linux-gnueabihf-
export PATH=$PATH:/opt/100ask_imx6ull-sdk/ToolChain/arm-buildroot-linux-gnueabihf_sdk-buildroot/bin
# 安装 gmp 库
sudo apt install libgmp-dev
# 编译生成 arm-buildroot-linux-gnueabihf-gdb
./configure --target=arm-buildroot-linux-gnueabihf --prefix=$PWD/tmp
make -j4
make install
# 编译生成 arm 格式的 gdbserver
make distclean
./configure --host=arm-buildroot-linux-gnueabihf --prefix=$PWD/tmp
make
# 此时会有报错,找不到 gmp 库,不用管;
make install
生成的 bin 文件都在 tmp 目录下;
其实在 buildroot 中也有 gdb,在 package/gdb 目录下,可以参考一下 buildroot 是如何编译的;
1 个赞
从你的操作看不用进入gdbserver编译?
- 我的操作没有进 gdbserver 目录编译;
- 尝试过进 gdbserver 编译,它会到上级 gdbsupport 目录链接一个库文件;但链接不成功,或许是需要该库是 arm 格式的;
- 方法仅供参考,你自己试试就知道了。
1 个赞
我也不懂这些概念,你自己实验下就知道了;
HOST端生成的是GDB,一般情况下 我们使用的交叉编译工具链 的GDB全名是 arm-linux-gnueabihf-gdb 通过这个 Host端的 arm-linux-gnueabihf-gdb 去连接 target(目标开发板)的gdbserver进行远程调试。
也就是说 gdbserver是在开发板上用的,而GDB(arm-linux-gnueabihf-gdb) 是在我们ubuntu上用的。
请问gdbservber无法在板子上编译的这个问题该怎么解决