Ubuntu14.04下adb命令出现的问题

本文详细介绍了在安装Android SDK过程中遇到lib32stdc++6依赖问题的解决方法,包括通过apt-get安装lib32gcc1、lib32stdc++6等依赖包,并手动下载特定版本的lib32gcc1和lib32stdc++6解决系统依赖冲突,最终成功执行adb命令。
摘要由CSDN通过智能技术生成

从网上下载了Android SDK,进入platfom-tools执行./adb报错

./adb: error while loading shared libraries: libstdc++.so.6: cannot open shared object file: No such file or directory

从网上查,说是缺少支持32位程序运行的库,执行

sudo apt-get install lib32stdc++6

报错

正在读取软件包列表... 完成
正在分析软件包的依赖关系树       
正在读取状态信息... 完成       
有一些软件包无法被安装。如果您用的是 unstable 发行版,这也许是
因为系统无法达到您要求的状态造成的。该版本中可能会有一些您需要的软件
包尚未被创建或是它们已被从新到(Incoming)目录移出。
下列信息可能会对解决问题有所帮助:

下列软件包有未满足的依赖关系:
 lib32stdc++6 : 依赖: lib32gcc1 (>= 1:4.1.1) 但是它将不会被安装
E: 无法修正错误,因为您要求某些软件包保持现状,就是它们破坏了软件包间的依赖关系

继续装lib32gcc1

sudo apt-get install lib32gcc1

又报错

正在读取软件包列表... 完成
正在分析软件包的依赖关系树       
正在读取状态信息... 完成       
有一些软件包无法被安装。如果您用的是 unstable 发行版,这也许是
因为系统无法达到您要求的状态造成的。该版本中可能会有一些您需要的软件
包尚未被创建或是它们已被从新到(Incoming)目录移出。
下列信息可能会对解决问题有所帮助:

下列软件包有未满足的依赖关系:
 lib32gcc1 : 依赖: gcc-4.9-base (= 4.9-20140406-0ubuntu1) 但是 4.9.1-0ubuntu1 正要被安装
E: 无法修正错误,因为您要求某些软件包保持现状,就是它们破坏了软件包间的依赖关系。

说是缺少gcc-4.9-base

继续安装gcc-4.9-base

sudo apt-get install gcc-4.9-base
说是我已经安装好了

正在读取软件包列表... 完成
正在分析软件包的依赖关系树       
正在读取状态信息... 完成       
gcc-4.9-base 已经是最新的版本了。
升级了 0 个软件包,新安装了 0 个软件包,要卸载 0 个软件包,有 0 个软件包未被升级。
晕死!
dpkg  -l | grep 'libstdc++6'

查看安装状态

ii  libstdc++6:amd64                                      4.8.2-19ubuntu1                                     amd64        GNU Standard C++ Library v3
没有 libstdc++6:i386

怎么整?

我试了一下

sudo apt-get install libc6-i386 lib32stdc++6 lib32gcc1 lib32ncurses5 lib32z1 

但是提示

下列软件包有未满足的依赖关系:
 lib32gcc1 : 依赖: gcc-4.9-base (= 4.9-20140406-0ubuntu1) 但是 4.9.1-0ubuntu1 正要被安装
E: 无法修正错误,因为您要求某些软件包保持现状,就是它们破坏了软件包间的依赖关系。

可能是因为gcc-4.9-base不是32位的,怎么整?

apt-get install 已经不能帮我们了,我们需要手动下载安装

google搜lib32gcc1 

在https://packages.debian.org/wheezy/lib32gcc1可以查到,下载Architecture是amd64的

然后

sudo dpkg -i lib32gcc1_4.7.2-5_amd64.deb
发现他依赖gcc-4.7-base

继续搜gcc-4.7-base,在https://packages.debian.org/sid/gcc-4.7-base可以查到,下载I386的,

sudo dpkg -i gcc-4.7-base_4.7.4-3_i386.deb

安装完成后,
cd ~/workspace/android-sdk-linux/platform-tools
执行./adb

发现ok了。成功!


PS:

要想列出PC上安装的包。比如:

要检查特定的包,例如检查firefox是否安装:

dpkg -s firefox
输出:

Package: firefox
Status: install ok installed
Priority: optional
Section: web
Installed-Size: 93775
Maintainer: Ubuntu Mozilla Team <ubuntu-mozillateam@lists.ubuntu.com>
Architecture: amd64
Version: 38.0+build3-0ubuntu0.14.04.1
Replaces: kubuntu-firefox-installer
Provides: gnome-www-browser, iceweasel, www-browser
Depends: lsb-release, libasound2 (>= 1.0.16), libatk1.0-0 (>= 1.12.4), libc6 (>= 2.17), libcairo2 (>= 1.2.4), libdbus-1-3 (>= 1.0.2), libdbus-glib-1-2 (>= 0.78), libfontconfig1 (>= 2.9.0), libfreetype6 (>= 2.2.1), libgcc1 (>= 1:4.1.1), libgdk-pixbuf2.0-0 (>= 2.22.0), libglib2.0-0 (>= 2.31.8), libgtk2.0-0 (>= 2.24.0), libpango-1.0-0 (>= 1.22.0), libpangocairo-1.0-0 (>= 1.14.0), libstartup-notification0 (>= 0.8), libstdc++6 (>= 4.6), libx11-6, libxcomposite1 (>= 1:0.3-1), libxdamage1 (>= 1:1.1), libxext6, libxfixes3, libxrender1, libxt6
Recommends: xul-ext-ubufox, libcanberra0, libdbusmenu-glib4, libdbusmenu-gtk4
Suggests: ttf-lyx
Conffiles:
 /etc/apport/native-origins.d/firefox 7c26b75c7c2b715c89cc6d85338252a4
 /etc/apport/blacklist.d/firefox ee63264f847e671832d42255912ce144
 /etc/apparmor.d/usr.bin.firefox f54f7a43361c7ecfa3874abca2f292cf
 /etc/firefox/syspref.js 09e457e65435a1a043521f2bd19cd2a1
Description: Safe and easy web browser from Mozilla
 Firefox delivers safe, easy web browsing. A familiar user interface,
 enhanced security features including protection from online identity theft,
 and integrated search let you get the most out of the web.
Xul-Appid: {ec8030f7-c20a-464f-9b0e-13a3a9e97384}
要列出系统安装的所有包,输入下面的命令:

dpkg --get-selections

你同样可以通过grep来过滤割到更精确的包。比如,我想要使用dpkg命令查看系统中安装的gcc包:

dpkg --get-selections | grep gcc
可以看到

gcc						install
gcc-4.8						install
gcc-4.8-base:amd64				install
gcc-4.9-base:amd64				install
libgcc-4.8-dev:amd64				install
libgcc1:amd64					install


此外,你可以使用“-L”参数来找出包中文件的位置。

dpkg -L gcc-4.8
示例输出:
/.
/usr
/usr/share
/usr/share/doc
/usr/share/doc/gcc-4.8-base
/usr/share/doc/gcc-4.8-base/README.Bugs
/usr/share/doc/gcc-4.8-base/NEWS.html
/usr/share/doc/gcc-4.8-base/quadmath
/usr/share/doc/gcc-4.8-base/quadmath/changelog.gz
/usr/share/doc/gcc-4.8-base/gcc
/usr/share/doc/gcc-4.8-base/gcc/changelog.gz
/usr/share/doc/gcc-4.8-base/gomp
/usr/share/doc/gcc-4.8-base/gomp/changelog.gz
/usr/share/doc/gcc-4.8-base/itm
/usr/share/doc/gcc-4.8-base/itm/changelog.gz
/usr/share/doc/gcc-4.8-base/NEWS.gz
/usr/share/doc/gcc-4.8-base/test-summary.gz
/usr/share/doc/gcc-4.8-base/README.ssp
/usr/share/doc/gcc-4.8-base/changelog.gz
/usr/share/man
/usr/share/man/man1
/usr/share/man/man1/gcc-ar-4.8.1.gz
/usr/share/man/man1/gcc-ranlib-4.8.1.gz
/usr/share/man/man1/gcc-nm-4.8.1.gz
/usr/share/man/man1/gcc-4.8.1.gz
/usr/share/man/man1/gcov-4.8.1.gz
/usr/lib
/usr/lib/gcc
/usr/lib/gcc/x86_64-linux-gnu
/usr/lib/gcc/x86_64-linux-gnu/4.8
/usr/lib/gcc/x86_64-linux-gnu/4.8/libgomp.spec
/usr/lib/gcc/x86_64-linux-gnu/4.8/libitm.spec
/usr/lib/gcc/x86_64-linux-gnu/4.8/lto-wrapper
/usr/lib/gcc/x86_64-linux-gnu/4.8/collect2
/usr/lib/gcc/x86_64-linux-gnu/4.8/lto1
/usr/bin
/usr/bin/gcc-ar-4.8
/usr/bin/gcov-4.8
/usr/bin/gcc-ranlib-4.8
/usr/bin/gcc-4.8
/usr/bin/gcc-nm-4.8
/usr/share/doc/gcc-4.8
/usr/share/man/man1/x86_64-linux-gnu-gcc-4.8.1.gz
/usr/share/man/man1/x86_64-linux-gnu-gcc-ranlib-4.8.1.gz
/usr/share/man/man1/x86_64-linux-gnu-gcov-4.8.1.gz
/usr/share/man/man1/x86_64-linux-gnu-gcc-nm-4.8.1.gz
/usr/share/man/man1/x86_64-linux-gnu-gcc-ar-4.8.1.gz
/usr/bin/x86_64-linux-gnu-gcc-nm-4.8
/usr/bin/x86_64-linux-gnu-gcc-ranlib-4.8
/usr/bin/x86_64-linux-gnu-gcc-4.8
/usr/bin/x86_64-linux-gnu-gcc-ar-4.8
/usr/bin/x86_64-linux-gnu-gcov-4.8

that's all

最后总结一下。

Android的adb是依赖32位lib32std++6库的,直接执行会报错,如下:


报缺少lib32std++库,我们如果直接执行,会报依赖错误



https://launchpad.net/ubuntu/trusty/amd64/lib32gcc1/1:4.9.1-0ubuntu1下载lib32gcc的包

https://launchpad.net/ubuntu/trusty/amd64/lib32stdc++6/4.8.2-19ubuntu1下载lib32std++包


首先安装lib32gcc

再安装lib32std


执行adb


成功




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值