我正在 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/