/home/zlgmcu/Desktop/SOFT/gdb/gdb-9.2/gdb/gdbserver/build-libiberty-gdbserver/.././../../libiberty/filename_cmp.c:179: undefined reference to `_sch_tolower' /usr/lib/gcc-cross/arm-linux-gnueabihf/9/../../../../arm-linux-gnueabihf/bin/ld: build-libiberty-gdbserver/libiberty.a(lbasename.o): in function `dos_lbasename': /home/zlgmcu/Desktop/SOFT/gdb/gdb-9.2/gdb/gdbserver/build-libiberty-gdbserver/.././../../libiberty/lbasename.c:74: undefined reference to `_sch_istable' collect2: error: ld returned 1 exit status make: *** [Makefile:411:gdbserver] 错误 1
时间: 2023-06-28 09:05:34 浏览: 248
这个错误是因为在编译链接时缺少了 `_sch_tolower` 和 `_sch_istable` 函数的定义。这两个函数都是 libiberty 库中的函数,需要将其链接到你的程序中。
你可以尝试在编译链接时加上 `-liberty` 参数来链接 libiberty 库,例如:
```
gcc your_program.c -o your_program -liberty
```
如果你使用的是 Makefile 构建程序,可以在 Makefile 中的链接命令中加入 `-liberty` 参数,例如:
```
your_program: your_program.o
gcc your_program.o -o your_program -liberty
```
如果以上方法仍然无法解决问题,可能需要检查你的 libiberty 库是否正确安装。
相关问题
-bash: /home/zlgmcu/bin/gdbserver: cannot execute binary file: Exec format error
这个错误通常是由于二进制文件的格式与当前操作系统或CPU架构不匹配导致的。您需要确定您的二进制文件是否与您的操作系统和CPU架构兼容。如果您的二进制文件是为不同的操作系统或CPU架构编译的,您需要重新编译或获取适用于您的操作系统和CPU架构的正确版本的二进制文件。如果您不确定如何更改或获取适当的二进制文件,请提供更多详细信息,以便我可以为您提供更多帮助。
-bash: /home/zlgmcu/bin/gdbserver: cannot execute binary file: Exec format error如何解决 举例
这个错误通常是由于二进制文件的格式不正确导致的。可能是因为你的二进制文件是针对不同的处理器架构编译的,或者它可能损坏了。
要解决这个问题,你可以尝试以下几个步骤:
1. 检查你的二进制文件是否是针对正确的处理器架构编译的。如果不是,请重新编译它。
2. 检查你的二进制文件是否已经损坏。你可以尝试从备份中恢复它,或者重新下载它。
3. 确保你正在运行正确的命令来运行你的二进制文件。如果你使用错误的命令,也可能会导致这个错误。
举个例子,如果你想要调试一个 ARM 架构的二进制文件,你可以这样做:
```
arm-linux-gnueabihf-gdb ./your_binary_file
```
如果你仍然遇到问题,你可以尝试在 Stack Overflow 或其他技术论坛上寻求帮助。
阅读全文