0

zlib を使用して Ubuntu 14.04 (x_64) で RaspberryPi の libpng をクロスコンパイルしようとしていますが、configure は失敗します

configure:11400: arm-linux-gnueabihf-gcc -o conftest -g -O2 -I/home/user/RPI_DEV/lib/include conftest.c -lz -lm >&5 /home/user/RPI_DEV/xtools/arm- bcm2708/gcc-linaro-arm-linux-gnueabihf-raspbian-x64/bin/../lib/gcc/arm-linux-gnueabihf/4.8.3/../../../../arm-linux -gnueabihf/bin/ld: 見つかりません -lz collect2: エラー: ld が 1 終了ステータスを返しました configure:11400: $? = 1 構成: 失敗したプログラム: ....

arm にツールチェーンを使用しているため、arm-ld は zlib を見つけることができません。

共有ライブラリでコンパイルするのではなく、静的ライブラリで試すように構成するためのオプションはありますか (例: -static -lz)。

コマンドは

./configure --enable-static=true --enable-shared=false --with-zlib-include="/home/user/RPI_DEV/lib/include" --with-zlib-lib="/home/user /RPI_DEV/lib/lib" LDFLGS="-L/home/user/RPI_DEV/lib/lib" CPPFLAGS="-I/home/user/RPI_DEV/lib/include" -enable-static --host=arm-linux -gnueabihf --prefix=/home/user/RPI_DEV/lib --exec-prefix=/home/user/RPI_DEV/lib

4

2 に答える 2

1

別のプロジェクトで使用する前に、zlib をクロスビルドしてツールチェーンにインストールする必要があります。

あなたがやっていることはうまくいくかもしれませんが、LDFLAGS を正しくつづる場合に限られます:

LDFLGS="-L/ホーム/ユーザー/RPI_DEV/lib/lib"

欠落している「A」に注意してください。同じスペルミスがあるのに、2 回目の試みがうまくいった理由はわかりません。おそらく、環境に正しい LDFLAGS がありましたか?

とにかく、これを行う方法を説明するUbuntuクロス開発ガイドがどこかにあるはずです。少し話が逸れますが、Gentoo の場合、'crossdev' を使用してツールチェーンをインストールし、次に通常のパッケージ インストール メカニズム ([host]-emerge) の crossdev 固有のバージョンを使用して zlib をツールチェーンにインストールします。

また、引数 --with-zlib-include と --with-zlib-lib は、私が見つけた現在のバージョンの libpng ではサポートされていません。RPi (または、実際には任意の ARM システム) 用に libpng をクロスコンパイルする場合は、入手可能な最新バージョンの 1.6 を使用する必要があります。

于 2015-03-21T15:02:26.067 に答える
0

誰かがこれを正しい方法で解決しない限り、これは私が行ったハックです。

  1. configure.ac ファイルを開く
  2. 行を見つけてコメントアウトする

AC_CHECK_LIB(z, zlibVersion, , AC_ERROR([zlibがインストールされていません]))

Configure は zlib のチェックなしで合格し、zlib を手動で追加します

LDFLGS="-L/home/user/RPI_DEV/lib/lib -L/home/user/RPI_DEV/lib/lib/libz.a"

  1. autoconf を実行する
  2. ./configure を実行 ...
于 2015-02-04T02:31:12.470 に答える