AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / server / 问题 / 58159
Accepted
yanchenko
yanchenko
Asked: 2009-08-25 13:45:22 +0800 CST2009-08-25 13:45:22 +0800 CST 2009-08-25 13:45:22 +0800 CST

在 amd64 机器上找不到共享库

  • 772
# /opt/dev/android-sdk/platforms/android-1.5/tools/aapt
/opt/dev/android-sdk/platforms/android-1.5/tools/aapt: error while loading shared libraries: libz.so.1: cannot open shared object file: No such file or directory

在 i386 机器上这个 aapt 启动,但不是在 amd64 上。/lib/libz.so.1 在这两种情况下都存在。怎么来的?

library gentoo android
  • 4 4 个回答
  • 1928 Views

4 个回答

  • Voted
  1. Kamil Kisiel
    2009-08-25T13:57:29+08:002009-08-25T13:57:29+08:00

    看起来 SDK aapt 工具是 32 位二进制文​​件,因此它正在寻找 32 位版本的 libz 库但只找到 64 位。您可以使用ldd. 我相信如果您安装 emul-linux-x86-baselibs 软件包,它将为您提供正确的/usr/lib32.

    • 1
  2. Best Answer
    yanchenko
    2009-08-25T14:01:13+08:002009-08-25T14:01:13+08:00

    我查看了 dev-util/android-sdk 并发现它正在将 app-emulation/emul-linux-x86-gtklibs 作为依赖项。

    • 1
  3. kargig
    2009-08-28T09:28:49+08:002009-08-28T09:28:49+08:00

    只需尝试:#emerge emul-linux-x86-baselibs,它将提供 32 位 libz.so.1 ...如果失败,请尝试 ldd /path/to/aapt 并提供输出以及 ldconfig 的输出-v | grep libz

    • 1
  4. Christian Müller
    2011-02-25T18:15:05+08:002011-02-25T18:15:05+08:00

    该错误确实在 emul-linux 的 32 位 libz.so.1.2.3 中!

    我刚刚自己构建了一个 32 位 libz 版本并且它可以工作 - aapt 不会抛出上述错误。如果您使用的是 gentoo - 所有 libz 版本的 emul-linux-x86-baselibs 都有这个问题(目前是 20100915-r1 和 20110129)

    在 emul-linux-baselibs 的更新版本发布之前,您需要执行以下步骤:

    • 获取 zlib(1.2.5 可以)
    • 打开包装
    • 编辑配置
    --- configure.old 2011-02-25 03:03:37.739491008 +0100
    +++ 配置 2011-02-25 03:03:51.760491008 +0100
    @@ -105,8 +105,8 @@
    
     if test "$gcc" -eq 1 && ($cc -c $cflags $test.c) 2>/dev/null; 然后
       抄送=“$cc”
    - SFLAGS="${CFLAGS--O3} -fPIC"
    - CFLAGS="${CFLAGS--O3}"
    + SFLAGS="${CFLAGS--O3} -fPIC -m32"
    + CFLAGS="${CFLAGS--O3} -m32"
       如果测试 $build64 -eq 1; 然后
         CFLAGS="${CFLAGS} -m64"
         SFLAGS="${SFLAGS} -m64"
    
    • 制作
    • 将 libz.so.1.2.5 移动到 /lib32

    问题是,虽然您自己编译的 64 位版本在 ELF 标头中有以下字段:

      [5] .gnu.version VERSYM 00000000000017be 000017be
      [6].gnu.version_d VERDEF 0000000000001890 00001890
      [7].gnu.version_r VERNEED 00000000000019e8 000019e8
    

    当前 emul-linux-x86-baselibs 提供的 32 位版本缺少 VERDEF 字段,它只包含

      [4].gnu.version VERSYM 00000d9c 000d9c 0000b4 02 A 2 0 2
      [5].gnu.version_r VERNEED 00000e50 000e50 000050 00 A 3 1 4
    

    您可以检查自己的 32 位库的自定义构建是否具有 VERDEF 字段 - 我的有,我想知道为什么在 emul-linux 发行版中缺少它。

    问候, cmuelle8

    ps: 有时候电脑程序打印的错误信息是对的..

    • 1

相关问题

  • 发行版 X 上完全相同的二进制库如何链接到比发行版 Y 上更少的库?

  • 有什么好的资产管理软件可以跟踪离线组件?[关闭]

  • 在 Redhat 上运行 32 位用户空间

  • 再使用 Prelink 还有意义吗?

  • 升级 Gentoo Linux 的最佳程序?

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    SFTP 使用什么端口?

    • 6 个回答
  • Marko Smith

    从 IP 地址解析主机名

    • 8 个回答
  • Marko Smith

    如何按大小对 du -h 输出进行排序

    • 30 个回答
  • Marko Smith

    命令行列出 Windows Active Directory 组中的用户?

    • 9 个回答
  • Marko Smith

    Windows 中执行反向 DNS 查找的命令行实用程序是什么?

    • 14 个回答
  • Marko Smith

    如何检查 Windows 机器上的端口是否被阻塞?

    • 4 个回答
  • Marko Smith

    我应该打开哪个端口以允许远程桌面?

    • 9 个回答
  • Marko Smith

    什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同?

    • 3 个回答
  • Marko Smith

    如何确定bash变量是否为空?

    • 15 个回答
  • Martin Hope
    MikeN 在 Nginx 中,如何在维护子域的同时将所有 http 请求重写为 https? 2009-09-22 06:04:43 +0800 CST
  • Martin Hope
    Tom Feiner 如何按大小对 du -h 输出进行排序 2009-02-26 05:42:42 +0800 CST
  • Martin Hope
    0x89 bash中的双方括号和单方括号有什么区别? 2009-08-10 13:11:51 +0800 CST
  • Martin Hope
    kch 如何更改我的私钥密码? 2009-08-06 21:37:57 +0800 CST
  • Martin Hope
    Kyle Brandt IPv4 子网如何工作? 2009-08-05 06:05:31 +0800 CST
  • Martin Hope
    Noah Goodrich 什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同? 2009-05-19 18:24:42 +0800 CST
  • Martin Hope
    Brent 如何确定bash变量是否为空? 2009-05-13 09:54:48 +0800 CST
  • Martin Hope
    cletus 您如何找到在 Windows 中打开文件的进程? 2009-05-01 16:47:16 +0800 CST

热门标签

linux nginx windows networking ubuntu domain-name-system amazon-web-services active-directory apache-2.4 ssh

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve