Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Makefile 为MIPS32构建根交叉编译GDB服务器_Makefile_Cross Compiling_Buildroot_Gdbserver_Uclibc - Fatal编程技术网

Makefile 为MIPS32构建根交叉编译GDB服务器

Makefile 为MIPS32构建根交叉编译GDB服务器,makefile,cross-compiling,buildroot,gdbserver,uclibc,Makefile,Cross Compiling,Buildroot,Gdbserver,Uclibc,我正试图从源代码处为MIPS32体系结构交叉编译一个版本的GDB服务器。我使用的是x86_64机器 我正在为MIPS MIPS Buildroot linux uClibc gcc使用Buildroot uClibc编译器 从GDB服务器目录运行./configure命令: ./configure --host=mips-buildroot-linux-uclibc AR=${CROSS}ar LD=${CROSS}ld CC=${CROSS}gcc CXX=${CROSS}g++ RANLIB

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

我正在为MIPS MIPS Buildroot linux uClibc gcc使用Buildroot uClibc编译器

从GDB服务器目录运行./configure命令:

./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运行,但我注意到输出中提到检查我们是否在交叉编译。。。不。它看起来不像./configure正在接收我试图交叉编译的信息

然后我运行make LDFLAGS=-static,这会产生错误:

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中的lthread_db依赖项,但是我需要调试线程化应用程序


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

既然您已经使用Buildroot构建了工具链,最简单的方法就是也使用Buildroot构建gdbserver

确保在“工具链”菜单中启用了线程库调试BR2_PTHREAD_DEBUG。 从目标包->调试中选择gdb。然后默认选择gdbserver。您不需要完整的gdb。 显然,您需要一个静态可执行文件,所以请从“构建选项->库”中选择“仅静态”。 这将为您提供一个静态链接的gdbserver可执行文件


请注意,如果更改工具链选项线程库调试、静态库,则必须使用makeclean进行完整重建;确保。

您确定配置脚本的-host选项不是您的主机吗?@RenaudPacalet否,这是-build。但是,@CS Student,您也应该通过-target=mips buildroot linux uclibc。这将解决您检查我们是否交叉编译的问题。。。问题