我安装了 Ubuntu 14.04 和当前的 Android 开发 SDK,其中包含 32 位可执行文件。我发现我无法运行那些 32 位二进制文件。尝试从 bash 启动它们给了我一个错误:
$ ./adb
bash: ./adb: No such file or directory
Run Code Online (Sandbox Code Playgroud)
虽然它在那里:
$ ls -al ./adb
-rwxrwxrwx 1 thomas thomas 1231255 Jan 17 13:31 ./adb
$ file ./adb
./adb: ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.8, not stripped.
Run Code Online (Sandbox Code Playgroud)
Android SDK 中所有其他 32 位工具的症状相同。
在过去,人们只需在 64 位 Ubuntu 上安装 32 位库即可获得 32 位支持,但这似乎不再起作用了。
如何在 64 位 Ubuntu 发行版上运行 32 位应用程序?
我正在尝试将 ac 程序编译为 32 位二进制而不是 64 位。我开始只是添加-m32并出现了一些错误。在谷歌上搜索了一下,我发现了一个安装 ia32-libs 的说明。运行apt-get install ia32-libs导致通知它已经安装并且是最新版本。
有一系列库,每个库都包括下一个,直到它失败:
/usr/include/features.h:323:26: fatal error: bits/predefs.h: No such file or directory
Run Code Online (Sandbox Code Playgroud)
它似乎包括其他包括的 32 位版本 /usr/include/c++/4.6/x86_64-linux-gnu/32/bits/ ...
我错过了什么?