C++ 为ARM平台编译库时出错

C++ 为ARM平台编译库时出错,c++,compiler-construction,compiler-errors,gstreamer,pkg-config,C++,Compiler Construction,Compiler Errors,Gstreamer,Pkg Config,我正在使用我的工具链编译对ARM有害的gst插件。我编译了构建它所需的所有内容,包括gstreamer、libmms等。。。并在我的sysroot中放置与pkg config相关的头、库和文件 当我配置everyrhing时,它看起来还可以,但尝试编译以下结果: luca@luca-work-laptop:~/gstreamer/gst-plugins-bad-0.10.21$ make make all-recursive make[1]: Entering directory `/home

我正在使用我的工具链编译对ARM有害的gst插件。我编译了构建它所需的所有内容,包括gstreamer、libmms等。。。并在我的sysroot中放置与pkg config相关的头、库和文件

当我配置everyrhing时,它看起来还可以,但尝试编译以下结果:

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。为什么它不与我的工具链中包含所有符号的工具链相链接?

您的配置脚本是否支持autoconf交叉编译? 在configure.In中,调用AC_PROG_CC后shell变量cross_compiling的值是多少

如果设置为no,那么makefile是否设置为使用交叉编译器

要设置这些变量,可以在手册中覆盖它们,也可以使用环境变量,如 下面的例子

导出CC=arch-gcc 导出CXX=arch-c++ 出口拱门 导出AR=拱AR 导出为=拱门为 出口纳米=拱形纳米 导出条带=拱形条带

如果设置为“是”,则检查makefile中专门用于libxml的include路径


在ARM上编译gst插件的另一个可能的资源是以下内容

您的配置脚本是否支持autoconf交叉编译? 在configure.In中,调用AC_PROG_CC后shell变量cross_compiling的值是多少

如果设置为no,那么makefile是否设置为使用交叉编译器

要设置这些变量,可以在手册中覆盖它们,也可以使用环境变量,如 下面的例子

导出CC=arch-gcc 导出CXX=arch-c++ 出口拱门 导出AR=拱AR 导出为=拱门为 出口纳米=拱形纳米 导出条带=拱形条带

如果设置为“是”,则检查makefile中专门用于libxml的include路径


在ARM上编译gst插件的另一个可能的资源是以下内容

您确定您的工具链有libxml2吗?或者更确切地说,是您的系统根

您可能需要导出PKG_CONFIG,因此当您运行“PKG CONFIG--libs libxml-2.0”时,您可以获得正确的路径。此外,您还可以检查生成的Makefile以查看使用了哪些真正的标志,或者在启用verbose选项的情况下进行构建


GStreamer的构建内容也可能因交叉编译而被破坏,这也是我使用scratchbox 2的原因之一;它使交叉编译透明。

您确定您的工具链有libxml2吗?或者更确切地说,是您的系统根

您可能需要导出PKG_CONFIG,因此当您运行“PKG CONFIG--libs libxml-2.0”时,您可以获得正确的路径。此外,您还可以检查生成的Makefile以查看使用了哪些真正的标志,或者在启用verbose选项的情况下进行构建


GStreamer的构建内容也可能因交叉编译而被破坏,这也是我使用scratchbox 2的原因之一;它使交叉编译变得透明。

您找到解决方案了吗?我也有同样的问题。你找到解决办法了吗?我也有同样的问题。