2

ツールチェーンを使用して、ARM 用の gst-plugins-bad をコンパイルしています。gstreamer、libmms など、ビルドに必要なものをすべてコンパイルし、pkg-config に関連するヘッダー、ライブラリ、ファイルの両方を sysroot に配置しました。

すべてを構成すると問題ないように見えますが、コンパイルしようとすると次のようになります。

luca@luca-work-laptop:~/gstreamer/gst-plugins-bad-0.10.21$ make
make  all-recursive
make[1]: Entering directory `/home/luca/gstreamer/gst-plugins-bad-0.10.21'
Making all in gst-libs
make[2]: Entering directory `/home/luca/gstreamer/gst-plugins-bad-0.10.21/gst-libs'
Making all in gst
make[3]: Entering directory `/home/luca/gstreamer/gst-plugins-bad-0.10.21/gst-libs/gst'
Making all in interfaces
make[4]: Entering directory `/home/luca/gstreamer/gst-plugins-bad-0.10.21/gst-libs/gst/interfaces'
make  all-am
make[5]: Entering directory `/home/luca/gstreamer/gst-plugins-bad-0.10.21/gst-libs/gst/interfaces'
make[5]: Nothing to be done for `all-am'.
make[5]: Leaving directory `/home/luca/gstreamer/gst-plugins-bad-0.10.21/gst-libs/gst/interfaces'
make[4]: Leaving directory `/home/luca/gstreamer/gst-plugins-bad-0.10.21/gst-libs/gst/interfaces'
Making all in signalprocessor
make[4]: Entering directory `/home/luca/gstreamer/gst-plugins-bad-0.10.21/gst-libs/gst/signalprocessor'
make[4]: Nothing to be done for `all'.
make[4]: Leaving directory `/home/luca/gstreamer/gst-plugins-bad-0.10.21/gst-libs/gst/signalprocessor'
Making all in video
make[4]: Entering directory `/home/luca/gstreamer/gst-plugins-bad-0.10.21/gst-libs/gst/video'
  CC     libgstbasevideo_0.10_la-gstbasevideoutils.lo
  CC     libgstbasevideo_0.10_la-gstbasevideocodec.lo
  CC     libgstbasevideo_0.10_la-gstbasevideodecoder.lo
  CC     libgstbasevideo_0.10_la-gstbasevideoencoder.lo
  CC     libgstbasevideo_0.10_la-gstbasevideoparse.lo
  CCLD   libgstbasevideo-0.10.la
libtool: link: warning: library `/home/luca/.../arm-2010q1_vsync/arm-none-linux-gnueabi/libc/usr/lib/libgstbase-0.10.la' was moved.
libtool: link: warning: library `/home/luca/.../arm-2010q1_vsync/arm-none-linux-gnueabi/libc/usr/lib/libgstreamer-0.10.la' was moved.
libtool: link: warning: library `/home/luca/.../arm-2010q1_vsync/arm-none-linux-gnueabi/libc/usr/lib/libgobject-2.0.la' was moved.
libtool: link: warning: library `/home/luca/.../arm-2010q1_vsync/arm-none-linux-gnueabi/libc/usr/lib/libgmodule-2.0.la' was moved.
libtool: link: warning: library `/home/luca/.../arm-2010q1_vsync/arm-none-linux-gnueabi/libc/usr/lib/libgthread-2.0.la' was moved.
libtool: link: warning: library `/home/luca/.../arm-2010q1_vsync/arm-none-linux-gnueabi/libc/usr/lib/libglib-2.0.la' was moved.
libtool: link: warning: library `/home/luca/.../arm-2010q1_vsync/arm-none-linux-gnueabi/libc/usr/lib/libgstvideo-0.10.la' was moved.
/usr/lib/libxml2.so: could not read symbols: File in wrong format
collect2: ld returned 1 exit status
make[4]: *** [libgstbasevideo-0.10.la] Error 1
make[4]: Leaving directory `/home/luca/gstreamer/gst-plugins-bad-0.10.21/gst-libs/gst/video'
make[3]: *** [all-recursive] Error 1
make[3]: Leaving directory `/home/luca/gstreamer/gst-plugins-bad-0.10.21/gst-libs/gst'
make[2]: *** [all-recursive] Error 1
make[2]: Leaving directory `/home/luca/gstreamer/gst-plugins-bad-0.10.21/gst-libs'
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory `/home/luca/gstreamer/gst-plugins-bad-0.10.21'
make: *** [all] Error 2

デスクトップ libxml2 にリンクしようとしているようです。すべてのシンボルを含むツールチェーンにあるものとリンクしていないのはなぜですか?

4

2 に答える 2

0

configureスクリプトはautoconfクロスコンパイルをサポートしていますか?configure.inで、AC_PROG_CCを呼び出した後のシェル変数cross_compilingの値は何ですか?

noに設定されている場合、makefileはクロスコンパイラを使用するように設定されていますか?

これらを設定するには、マニュアルでオーバーライドするか、以下の例のような環境変数を使用します

export CC = arch-gcc export CXX = arch-c ++ export arch-ld export AR = arch-ar export AS = arch-as export NM = arch-nm export STRIP = arch-strip

yesに設定されている場合は、makefile内のlibxml専用のインクルードパスを確認してください。

ARMでgst-plugins-badをコンパイルするためのもう1つの可能なリソースは、次のガイドです。

于 2012-03-07T19:39:57.193 に答える
0

ツールチェーンにlibxml2が含まれていますか?というか、あなたのsysroot。

PKG_CONFIGをエクスポートする必要があるかもしれないので、「pkg-config --libs libxml-2.0」を実行すると、正しいパスが得られます。また、結果のMakefileをチェックして、実際に使用されているフラグを確認したり、verboseオプションをオンにしてビルドしたりすることもできます。

クロスコンパイルのためにGStreamerのビルドが壊れている可能性もあります。これが、私がスクラッチボックス2を使用する理由の1つです。クロスコンパイルを透過的にします。

于 2012-04-17T09:47:19.220 に答える