首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Buildroot交叉编译用于MIPS32的GDB服务器

Buildroot交叉编译用于MIPS32的GDB服务器
EN

Stack Overflow用户
提问于 2018-05-09 12:53:55
回答 1查看 2.3K关注 0票数 0

我正试图从源代码中为MIPS32体系结构交叉编译GDB服务器的版本。我用的是一台x86_64机器。

我正在为MIPS (mips-buildroot-linux-uclibc-gcc)使用Buildroot MIPS编译器。

在GDB服务器目录中,我运行./configure命令:

代码语言:javascript
复制
./configure --host=mips-buildroot-linux-uclibc AR=${CROSS}ar LD=${CROSS}ld CC=${CROSS}gcc CXX=${CROSS}g++ RANLIB=${CROSS}ranlib LIBS=-L/root/Desktop/buildroot/buildroot-2018.02.2/output/host/lib

使用$CROSS具有mips-buildroot-linux-uclibc-

./configure运行,但我注意到在输出中提到了checking whether we are cross compiling... no。我似乎并不是说./configure正在尝试交叉编译。

然后运行make LDFLAGS=-static,生成错误:

代码语言:javascript
复制
ld: cannot find -lthread_db
collect2: error: ld returned 1 exit status
Makefile:379: recipe for target 'gdbserver' failed
make: *** [gdbserver] Error 1

我读到您可以删除GDB服务器makefile中的makefile依赖项,但是我需要调试线程化的应用程序。

如何使用Buildroot交叉编译工具集为MIPS32体系结构交叉编译GDB服务器?

EN

回答 1

Stack Overflow用户

发布于 2018-05-10 11:15:52

因为您无论如何都要用Buildroot构建工具链,所以最简单的方法就是使用Buildroot构建gdbserver。

  • 确保在“工具链”菜单中启用了线程库调试(BR2_PTHREAD_DEBUG)。
  • 从目标包->调试中选择gdb。然后默认情况下选择gdbserver。你不需要完整的gdb。
  • 显然,您需要一个静态可执行文件,所以只从构建选项->库中选择static。

这将为您提供静态链接的gdbserver可执行文件。

请注意,如果更改工具链选项(线程库调试、静态库),则必须使用make clean; make进行完全重构。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50253929

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档