unbantu已经存在gdbserver 但移植到开发板无法执行 -bash: ./gdbserver: cannot execute binary file: Exec format error 如何重新编译
时间: 2023-11-05 10:50:44 浏览: 254
这个错误通常表示你的 gbdserver 编译的架构与你的开发板架构不一致,导致无法执行。你需要重新编译适用于你开发板架构的 gdbserver。
首先,你需要确定你开发板的架构是什么。你可以通过命令 `uname -m` 来获取。例如,如果输出是 `armv7l`,那么你的开发板架构是 ARM 32 位。
然后,你需要下载 gdbserver 的源代码,并根据你的开发板架构进行编译。你可以从官方网站下载最新的 gdb 源代码:https://www.gnu.org/software/gdb/download/
解压源代码后,进入 gdb/gdbserver 目录,执行以下命令进行编译:
```
./configure --host=YOUR_BOARD_ARCH
make
```
其中,`--host` 参数指定了你的开发板架构。例如,如果你的开发板是 ARM 32 位,那么 `--host` 参数应该设置为 `arm-linux-gnueabi`。
编译完成后,你会在 gdb/gdbserver 目录中看到一个新的二进制文件。将这个文件复制到你的开发板上,并尝试执行。如果还是出现类似的错误,可能需要检查一下你的编译工具链是否正确配置了。
相关问题
-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 或其他技术论坛上寻求帮助。
阅读全文