Как собрать проект gstreamer с помощью MinGW?

Я установил следующие два msi на свою 64-разрядную версию Windows 7 (базовую). Я загрузил msi с сайта здесь.

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

Теперь я пытаюсь создать программу this hello world с помощью MinGW (GCC 4.8.1), и компоновщик доставляет мне проблемы, говоря следующее:

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-unused-parameter -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-sdk/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 -ICr: / 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 -lintl -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

Чего в этом не хватает?

Что мне делать, чтобы решить эту проблему?


person Nawaz    schedule 23.09.2013    source источник
comment
вероятно, сам gstreamer, поскольку gst_init недоступен.   -  person Marc B    schedule 23.09.2013
comment
@MarcB: Разве установленный msi не содержит его? Что я не установил (или пропустил при настройке)?   -  person Nawaz    schedule 23.09.2013
comment
у вас там -lgstreamer-0.10, но это будет полезно, только если материал gstreamer находится в пути include / linker.   -  person Marc B    schedule 23.09.2013
comment
@MarcB: Я могу предположить, что некоторые определенные вещи gstreamer отсутствуют в пути, но мне нужно знать, что это конкретная вещь?   -  person Nawaz    schedule 23.09.2013


Ответы (1)


Я подозреваю, что вы используете компилятор GCC MinGW по умолчанию, который нацелен на архитектуру x86, но вы загрузили версию SDK для x86_64. Компоновщик может найти библиотеки, но я не смогу их использовать.

Мы настоятельно рекомендуем использовать систему сборки cerbero для настройки среды разработки. Он позаботится о загрузке рабочей цепочки инструментов и скомпилирует все зависимости сборки (autotools, gettext, libtoo, pkg-config и т. Д.)

Подробные инструкции вы найдете здесь в разделе Создайте единый проект с помощью SDK

Суммируя:

  1. оформить заказ репо Cerbero
  2. запустите команду начальной загрузки: ./cerbero-uninstalled -c config / win64.cbc bootstrap
  3. войдите в оболочку разработки с помощью: ./cerbero-uninstalled -c config / win64.cbc shell
person ylatuya    schedule 17.10.2013