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

时间:2018-04-07 08:09:42

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

我正在Debian Linux(64位)上编译C ++,并且需要能够为另一个系统编译为32位。二进制文件不能在我的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。

非常感谢任何其他想法来解决这个问题。

1 个答案:

答案 0 :(得分:6)

您需要安装32位库,例如

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

您可以使用ldd命令找出所需的库。 您可以使用apt-file查找库的包。