web-dev-qa-db-ja.com

「/ usr / bin / ld:-lzが見つかりません」

Ubuntu 10.04でAndroidソースコードをコンパイルしようとしています。エラーが表示されます、

/ usr/bin/ld:-lzが見つかりません

修正方法を教えてください。 cannot find -lzはどういう意味ですか?完全なエラーメッセージを次に示します。

external/qemu/Makefile.Android:1101: warning: overriding commands for target `external/qemu/Android/avd/hw-config-defs.h'
external/qemu/Makefile.Android:933: warning: ignoring old commands for target `external/qemu/Android/avd/hw-config-defs.h'
Host SharedLib: libneo_cgi (out/Host/linux-x86/obj/lib/libneo_cgi.so)
/usr/bin/ld: skipping incompatible /usr/lib/gcc/i486-linux-gnu/4.4.3/../../../libz.so when searching for -lz
/usr/bin/ld: skipping incompatible /usr/lib/gcc/i486-linux-gnu/4.4.3/../../../libz.a when searching for -lz
/usr/bin/ld: skipping incompatible /usr/lib/libz.so when searching for -lz
/usr/bin/ld: skipping incompatible /usr/lib/libz.a when searching for -lz
/usr/bin/ld: cannot find -lz
collect2: ld returned 1 exit status
make: *** [out/Host/linux-x86/obj/lib/libneo_cgi.so] Error 1

そして、私のGCCバージョンの出力:

scheung@scheung-virtual-box:/media/EXTDIV/mydroid$ gcc --version
gcc (Ubuntu 4.4.3-4ubuntu5) 4.4.3
Copyright (C) 2009 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

既にzlib1g-devライブラリがインストールされています:

$ Sudo apt-get install zlib1g-dev 
Reading package lists... Done
Building dependency tree       
Reading state information... Done
zlib1g-dev is already the newest version.

このリンク から取得します。)

147
michael

まったく同じエラーが発生しましたが、あなたと同様、zlib1g-devをインストールしても修正されませんでした。 lib32z1-devをインストールすると、それを超えてしまいました。私は64ビットシステムを使用していますが、32ビットライブラリが必要だったようです。

163
kylefinn

X64の場合は、zlib1g-devをインストールするだけです。

Sudo apt-get install zlib1g-dev

すべてのx86ライブラリが必要というわけではありません;)

99
phedoreanu

Sudo apt-get install libz-devはUbuntuで。

47
Siva mbigai M

私はちょうどこの問題に遭遇し、「あなたのメイクファイルが壊れている」と「ホストインクルードをクロスコンパイルに含めるべきではない」という受け入れられている解決策に反して

Androidビルドには、AndroidアプリをビルドするためにSDKで使用される多くのホスト実行可能ファイルが含まれています。私の場合、Androidデバイスにインストールする前にapkを最適化するために使用されるzipalignのビルド中にmakeが停止しました。

Lib32z1-devをインストールすると、私の問題は解決しました。Ubuntuでは、次のコマンドでインストールできます。

Sudo apt-get install lib32z1-dev
31
Adam

まったく同じエラーが発生しました。zlib-develをインストールすると問題が解決しました。コマンドを入力してzlibパッケージをインストールします。

Linuxの場合:

Sudo apt-get install zlib*

Centosの場合:

Sudo yum install zlib*
6
Abhi km

別の考えられる原因:--staticをリンカーに渡しましたが、libz(libz.so)の動的バージョンのみがあり、静的にリンクできるバージョン(libz.a)がありません。

4
jhclark

これは、圧縮パッケージを含むライブラリ「libz.a」または「libz.so」を含めるように要求したことを意味し、コンパイラはいくつかのファイルを検出しましたが、使用しているビルドに適したものはありませんでした。

ビルドパラメータを変更するか、正しいライブラリをインストールするか、-L/where/it/is/lib typeオプションを使用してリンクコマンドライン上の正しいライブラリの場所を指定する必要があります。

4

これにより、インストールされたライブラリをリンカが望まない理由についての手がかりが表示されます。

LD_DEBUG=all make ...

異なるコンテキストで同じ問題が発生しました。異なるバージョンのOSで再リンクしようとしたため、システム/lib/libz.so.1がlibcに依存していませんでした。

3
qneill

これらの3つのソリューションのいずれかを試してください。動作する必要があります:):

  1. Sudo apt-get install zlib1g-dev
  2. Sudo apt-get install libz-dev
  3. Sudo apt-get install lib32z1-dev

実際、欠落しているのはlzコマンドではなく、zlibライブラリの開発ファイルです。したがって、exを取得するにはzlib1g-devlibをインストールする必要があります。

1
DINA TAKLIT

opensuse 12.3(Dartmouth)(i586)の場合、sudo zypper install zlib-devel zlib-devel-static

1
euthygenes

他の人はlib32z-devが問題を解決すると言及しましたが、一般に必要なパッケージはここにあります:

http://source.Android.com/source/initializing.html 「必要なパッケージのインストール」を参照

0
Conley Owens

それを追加したいだけです:

tiramisu Subモジュールをインストール(ハライドをインストール)しようとすると、同様のエラーが表示されます

read -lz -o bin/libHalide.so
/usr/bin/ld:  cannot find -lz 

そして、@ phedoreanuを共有していたことが、私のpbを修正しました。

Sudo apt-get install zlib1g-dev

したがって、ティラミスのウルインストールにこのエラーが表示されても心配はありません;彼らのための薬です;)。

0
DINA TAKLIT