У меня есть настройки проектов, как описано в readme, и у меня установлена и компилируется GLib 2.28.8. Когда я начинаю компилировать gstreamer, я получаю тысячи ошибок, которые указывают мне, что что-то не так с настройкой сборки или с версиями GLib. Я не смог найти простой источник других версий GLib для Windows (здесь я попробовал как версию dev, так и исходники GLib: http://www.gtk.org/download/win32.php ).
Первая ошибка компиляции:
...\build\gstreamer-1.0.5\gst/gstobject.h(170): error C2079: 'lock' uses undefined struct '_GMutex'
В gstobject блокировка определяется как:
GMutex lock; /* object LOCK */
Какие Visual Studio находит, как определено в gthread.h
typedef struct _GMutex GMutex;
Так что все выглядит хорошо для меня, но, может быть, я что-то упускаю. glibconfig.h также определяет _GMutex * как GStaticMutex, это может мешать?
Я использую glib.2.28.8, также столкнулся с той же проблемой. Следующие две темы (1 а также 2) также обсудить связанную с этим проблему.
В моем случае просто добавьте
struct _GMutex
{
/*< private >*/
gpointer p;
guint i[2];
};
до
struct _GMutex GMutex;
Может быть, вы должны попытаться обновить ваш Glib до 2.32.0
Я успешно собираю GStreamer-1.0.5 как на Linux, так и на Windows XP, с помощью Glib 2.32.4
Смотрите configure.ac
dnl GLib
GLIB_REQ = 2.32.0
AG_GST_GLIB_CHECK ([$ GLIB_REQ])