c++ - 无法在 64 位 Debian 上运行 32 位二进制文​​件

标签 c++ linux 64-bit 32bit-64bit 32-bit

我正在 Debian Linux(64 位)上编译 C++,需要能够为另一个系统编译为 32 位。二进制文件不会在我的 64 位系统上运行,让它们在 64 位系统上运行会更便于测试。

我用于测试的 C++ 是 int main () { std::cout << "This is Main.cpp" << std::endl; }包含 iostream,所以没什么特别的。

我的编译行是 g++ -m32 Main.cpp

当我做 ./a.out我得到 -bash: ./a.out: cannot execute binary file: Exec format error

我进行了大量搜索以尝试解决此问题并安装了 apt:libc6:i386、libncurses5:i386 和 libstdc++6:i386。

如果有任何其他解决此问题的想法,我们将不胜感激。

最佳答案

你需要安装32位的库,例如

dpkg --add-architecture i386
apt-get update
apt-get install libc6-i386

您可以使用 ldd 命令找出需要哪些库。 您可以使用 apt-file 来查找库的包。

关于c++ - 无法在 64 位 Debian 上运行 32 位二进制文​​件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49705309/

相关文章:

linux - 是否有适用于 Linux 的 WinSCP?

java - 如果加载超过 2 GB 的数据,Java 8 会出现 EXCEPTION_ACCESS_VIOLATION

x86 上的 C 64 位循环性能

visual-studio - Visual Studio 2008 64 位调试策略

c++ - 如何将 Qt 库添加到 visual studio

c++ - 视觉 C++ 2012 : compiler complains about "missing ' ;'"

linux - 将确切的异常写入日志文件

linux - 返回字符串比较结果 - bash

c++ - __cdecl 或 __stdcall 在 Windows 上?

c++ - 无法使用 C++ 和 SFML 2.1 将图像文件加载为纹理