Ошибка при компиляции библиотеки для платформы ARM

Я использую свой инструментарий для компиляции gst-plugins-bad для ARM. Я скомпилировал все, что нужно для его сборки, включая gstreamer, libmms и т. д., и поместил в свой sysroot заголовки, библиотеки и файлы, связанные с pkg-config.

Когда я настраиваю все, кажется, что все в порядке, но попытка скомпилировать приводит к:

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. Почему он не связывается с тем, который у меня есть в моей цепочке инструментов, в котором есть все символы?


person Luca Carlon    schedule 07.03.2012    source источник
comment
Вы уже нашли решение? У меня такая же проблема.   -  person Black    schedule 25.08.2015


Ответы (2)


Поддерживает ли ваш скрипт configure кросс-компиляцию autoconf? Каково значение переменной оболочки cross_compiling в файле configure.in после вызова AC_PROG_CC?

Если для него установлено значение «нет», то настроен ли make-файл на использование вашего кросс-компилятора?

Чтобы установить их, вы можете либо переопределить их в руководстве, либо использовать переменные среды, как в примере ниже.

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

Если установлено значение «да», проверьте путь включения специально для libxml в make-файле.

Еще одним возможным ресурсом для компиляции gst-plugins-bad на ARM является следующая ссылка руководство

person Appleman1234    schedule 07.03.2012

Вы уверены, что в вашей цепочке инструментов есть libxml2? Вернее, ваш системный корень.

Возможно, вам потребуется экспортировать PKG_CONFIG, поэтому при запуске pkg-config --libs libxml-2.0 вы получите правильный путь. Кроме того, вы можете проверить получившийся Makefile, чтобы увидеть, какие настоящие флаги используются, или выполнить сборку с включенной опцией verbose.

Также возможно, что материал сборки GStreamer сломан для кросс-компиляции, что является одной из причин, по которой я использую блокнот 2; это делает кросс-компиляцию прозрачной.

person FelipeC    schedule 17.04.2012