![即使添加 i386 后也无法在 x86_x64 服务器上运行 ELF 32 位](https://linux22.com/image/1056685/%E5%8D%B3%E4%BD%BF%E6%B7%BB%E5%8A%A0%20i386%20%E5%90%8E%E4%B9%9F%E6%97%A0%E6%B3%95%E5%9C%A8%20x86_x64%20%E6%9C%8D%E5%8A%A1%E5%99%A8%E4%B8%8A%E8%BF%90%E8%A1%8C%20ELF%2032%20%E4%BD%8D.png)
我正在尝试在 64 位服务器上运行 32 位应用程序。以下是我为实现该目标所遵循的步骤:
sudo dpkg --add-architecture i386
sudo apt-get update
sudo apt-get install libc6:i386 libncurses5:i386 libstdc++6:i386
即使在此之后我仍得到以下信息:
./steamcmd.sh: line 29: /home/steam/steamcmd/linux32/steamcmd: cannot execute binary file: Exec format error
一些信息:
uname -i
给我吗:
x86_64
文件 linux32/steamcmd 给我:
linux32/steamcmd: ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.34, BuildID[sha1]=17188c02dec11be2af104afd625f39a2c89b54c7, not stripped
答案1
您缺少 32 位加载器,这会导致 ldd 错误地声明“不是动态可执行文件”,而不是正确的“错误架构”。32 位 ld 位于软件包 libc6-i386 中。我会在 ldd 报告中记录这个错误,但一直没来得及记录。