2013-09-23 74 views
0

我在Windows 7(基本版)上安装了以下两个msi 64位—我从here下载了msi。如何使用MinGW构建gstreamer项目?

  • gstreamer-sdk-devel-x86_64-2013.6.msi
  • gstreamer-sdk-x86_64-2013.6.msi

现在我试图建立使用MinGW的(GCC 4.8.1)this hello world程序和链接器给我的麻烦,说这句话的:

C:\Users\Apelles\AppData\Local\Temp\ccwLMXuu.o: In function `gst_message_unref': 
C:/gstreamer-sdk/0.10/x86_64/include/gstreamer-0.10/gst/gstmessage.h:347: undefined reference to `gst_mini_object_unref' 
C:\Users\Apelles\AppData\Local\Temp\ccwLMXuu.o: In function `main': 
F:\projects\gstreamer/helloworld.c:9: undefined reference to `gst_init' 
F:\projects\gstreamer/helloworld.c:12: undefined reference to `gst_parse_launch' 
F:\projects\gstreamer/helloworld.c:15: undefined reference to `gst_element_set_state' 
F:\projects\gstreamer/helloworld.c:18: undefined reference to `gst_element_get_bus' 
F:\projects\gstreamer/helloworld.c:19: undefined reference to `gst_bus_timed_pop_filtered' 
F:\projects\gstreamer/helloworld.c:24: undefined reference to `gst_object_unref' 
F:\projects\gstreamer/helloworld.c:25: undefined reference to `gst_element_set_state' 
F:\projects\gstreamer/helloworld.c:26: undefined reference to `gst_object_unref' 
collect2.exe: error: ld returned 1 exit status 

我缺少哪个库?

下面是我用它来构建项目选项(从我make输出取):

的gcc helloworld.c -ggdb -Wall -Wextra -ansi -std = C99 -Wno未使用的参数-mms-bitfields -IC:/gstreamer-sdk/0.10/x86_64/include/gtk-2.0 -IC:/gstreamer-sdk/0.10/x86_64/lib/gtk-2.0/include -IC:/gstreamer-sdk/0.10/ x86_64/include/atk-1.0 -IC:/gstreamer-sdk/0.10/x86_64/include/cairo -IC:/gstreamer-sdk/0.10/x86_64/include/gdk-pixbuf-2.0 -IC:/gstreamer-sdk/0.10 /x86_64/include/pango-1.0 -IC:/gstreamer-sdk/0.10/x86_64/include/glib-2.0 -IC:/gstreamer-sdk/0.10/x86_64/lib/glib-2.0/include -IC:/ gstreamer- sdk/0.10/x86_64/include/pixman-1 -IC:/gstreamer-sdk/0.10/x86_64/include/fontconfig -IC:/ gstreamer-s dk/0.10/x86_64/include/freetype2 -IC:/gstreamer-sdk/0.10/x86_64/include -IC:/gstreamer-sdk/0.10/x86_64/include/libpng15 -mms-bitfields -IC:/gstreamer-sdk/0.10 /x86_64/include/gstreamer-0.10 -IC:/gstreamer-sdk/0.10/x86_64/include/glib-2.0 -IC:/gstreamer-sdk/0.10/x86_64/lib/glib-2.0/include -IC:/ gstreamer- sdk/0.10/x86_64/include/libxml2 -LC:/gstreamer-sdk/0.10/x86_64/lib -lgtk-win32-2.0 -lgdk-win32-2.0 -latk-1.0 -lgio-2.0 -lpangowin32-1.0 -lgdi32 -lpangocairo -1.0 -lgdk_pixbuf-2.0 -lpango-1.0 -lcairo -lgobject-2.0 -lglib-2.0-intl -LC:/gstreamer-sdk/0.10/x86_64/lib -lgstinterfaces-0.10 -lgstreamer-0.10 -lgobject-2.0 -lgmodule- 2.0 -lgthread-2.0 -lxml2 -lglib-2.0 -lintl

这是什么缺点?

我应该怎么做才能解决这个问题?

+1

可能gstreamer本身,因为'gst_init'不可用。 –

+0

@MarcB:不要安装msi包含它?我没有安装什么(或配置时错过了)? – Nawaz

+0

你已经有'-lgstreamer-0.10'了,但只有当gstreamer的东西在include/linker路径中时才有用。 –

回答

2

我怀疑你正在使用MinGW的默认GCC编译器,它的目标是x86架构,但是你已经下载了x86_64版本的SDK。链接器可以找到这些库,但我将无法使用它们。

我们强烈建议使用cerbero的构建系统来设置开发环境。这将需要下载一个工作工具链的关怀和编译所有的编译依赖(自动工具,gettext的,libtoo,pkg配置,等...)

你会发现详细说明here在部分建立一个单一的项目该SDK

简而言之:

  1. 结账cerbero的回购
  2. 运行与引导命令:./cerbero-uninstalled -c配置/ win64.cbc引导
  3. 进入开发shell:./cerbero-uninstalled -c config/win64。cbc shell