pkg-config --libs返回一个.la文件,但g ++无法处理它

时间:2012-12-18 18:25:48

标签: linux g++ ld libtool

我正在尝试从git构建针对GStreamer的东西。他们有一些神奇的过程让pkg-config感到高兴,但是如果我运行它,我会得到一个.la文件:

$ pkg-config --libs gstreamer-1.0
/home/blong/gst/head/gstreamer/gst/libgstreamer-1.0.la -lgobject-2.0 -lglib-2.0

这会给GCC带来问题:

g++ -o example switchtrackexample.cpp `pkg-config --libs --cflags gstreamer-1.0`
# comes out as: g++ -o example switchtrackexample.cpp -pthread -I/home/blong/gst/head/gstreamer -I/home/blong/gst/head/gstreamer/libs -I/usr/include/glib-2.0 -I/usr/lib/x86_64-linux-gnu/glib-2.0/include /home/blong/gst/head/gstreamer/gst/libgstreamer-1.0.la -lgobject-2.0 -lglib-2.0
/usr/bin/ld: error: /home/blong/gst/head/gstreamer/gst/libgstreamer-1.0.la:8:8: invalid character
/usr/bin/ld: error: /home/blong/gst/head/gstreamer/gst/libgstreamer-1.0.la:8:8: syntax error, unexpected $end
/usr/bin/ld: error: /home/blong/gst/head/gstreamer/gst/libgstreamer-1.0.la: not an object or archive
# lots of undefined references here

我已经阅读了一些建议我应该能够使用libtool来编译它的东西,但我无法弄清楚如何。我应该对这个.la文件做些什么?

1 个答案:

答案 0 :(得分:0)

在我问这个问题后,我想到了,{Julie Moutte found this answer

  

添加:
  libtool --mode = link
  在你的构建命令面前。

按照这个建议,我得到了这个,这有效:

libtool --mode=link g++ -o example switchtrackexample.cpp `pkg-config --cflags --libs gstreamer-1.0`