$ ./adb
bash: ./adb: No such file or directory
它在那里:
$ 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. Same symptom for all the other 32-bit tools in the Android SDK.
在过去,人们可以在64位Ubuntu上安装32位库来获得32位支持,但这似乎不再起作用。
我如何在Windows XP上运行32位应用程序64位Ubuntu 14.04?
#1 楼
要在64位多体系结构Ubuntu系统上运行32位可执行文件,您必须添加i386
体系结构并安装三个库软件包libc6:i386
,libncurses5:i386
和libstdc++6:i386
:sudo dpkg --add-architecture i386
或者如果您使用的是Ubuntu 12.04 LTS(精确的穿山甲)或以下版本,请使用以下命令:
echo "foreign-architecture i386" > /etc/dpkg/dpkg.cfg.d/multiarch
然后:
sudo apt-get update
sudo apt-get install libc6:i386 libncurses5:i386 libstdc++6:i386
如果失败,也请
sudo apt-get install multiarch-support
之后这些步骤,您应该能够运行32位应用程序:
./example32bitprogram
评论
@AvinashRaj这帮助了我!但是,实际上应该执行的最后一个命令“ sudo ./adb”是什么?
–马塞尔
14年5月22日在21:33
它执行当前目录中存在的32位adb二进制文件。
– Avinash Raj
14年5月23日在1:05
为了能够在Ubuntu 14.04上使用aapt,我还必须安装lib32z1,但注意到它插入了libc6-i386(区分,注意连字符,而不是冒号)。
–克里斯·贝蒂(Chris Betti)
2014年5月23日19:09
我做了您的步骤,libc6:i386,libncurses5:i386,libstdc ++ 6:i386是最新版本,并设置为手动安装。但是之后它说:“无法安装Soma软件包。这可能意味着您请求了不可能的情况,或者您使用的是不稳定的发行版……”和未满足的依赖性:libstdc ++ 6-6.4-dev:i386取决于g ++-4.4 :i386(不会安装)。冲突:libstdc ++ 6-6-4.4-dbg:i386 ...以及其他有关libstdc ++ 6-4.4 / 6/7的冲突,等等。出了什么问题?或者我应该现在就保留它?
–弗雷德里克·高斯(Fredrick Gauss)
2014年6月4日6:09
@FredrickGauss进入这里。
– Avinash Raj
2014年6月4日在6:13
#2 楼
当您拥有二进制文件时,可能会出现“没有这样的文件或目录”,但是它缺少一些库。如果安装build-essential
软件包,则将具有ldd
命令可用。此命令ldd ./adb | grep not
将向您显示缺少哪些库。只需使用apt将这些库安装在i386 arch中。像这样:apt-get install libmissing:i386
请注意,一些错误的程序包将尝试删除64位版本的fir。
评论
谢谢,这将解释奇怪的错误消息。我首先感到困惑,为什么bash会给我这个错误(而不是一些错误的错误源于遗漏库的子进程),但是现在我想bash只会看到exec(3)返回ENOENT并打印出来。
– Thomas Stuefe
2014年4月24日12:30
#3 楼
如果要使用“ adb”,则有一个软件包:sudo apt-get install android-tools-adb
以及大约32位库-仅:
sudo apt-add-architecture i386
就足够了。
评论
感谢您的提示,但我想使用从google下载的android工具,而不是Ubuntu仓库中的工具。我也不确定该软件包的完整性。
– Thomas Stuefe
2014年4月24日在12:36
Ubuntu存储库必须具有新版本。该软件包仅包含adb。如果您想要fastboot-也有它的软件包:)
–aastefanov
2014年4月24日12:44
#4 楼
除了Zanna和Avinash Raj的出色回答外,我还必须安装gcc-multilib:sudo apt-get install gcc-multilib
可能这是因为我想在64位。
#5 楼
只是Zanna的一个补充:以下内容解决了android studio中“无法安装库”的问题:
sudo apt-get install libdb1-compact tzdata initscripts
这代替了缺少的库libstdc ++ 6-i386,这可能是因为软件包已过时。不知道为什么这个特定的库很重要。
评论
stackoverflow.com/a/19524010/1778421