我按照自述文件中的说明设置项目,并安装和编译了GLib 2.28.8。当我编译gstreamer时,我收到了数以千计的错误,这些错误向我表明构建设置或GLib版本存在问题。我找不到其他GLib版本的简单源代码(我在这里尝试了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中,lock定义为:
GMutex lock; /* object LOCK */
Visual Studio在gthread.h中定义的
typedef struct _GMutex GMutex;
所以一切看起来都很好,但也许我忽略了一些东西。 glibconfig.h还将_GMutex *定义为GStaticMutex,可能会干扰吗?
答案 0 :(得分:2)
我使用的是glib.2.28.8,也遇到了同样的问题。以下两个主题(1和2)也讨论了相关问题。
在我的情况下,只需添加
struct _GMutex
{
/*< private >*/
gpointer p;
guint i[2];
};
前
struct _GMutex GMutex;
答案 1 :(得分:0)
也许您应该尝试将Glib更新为2.32.0
我在Linux和Windows Xp上使用Glib 2.32.4成功构建了GStreamer-1.0.5
请参阅configure.ac
dnl GLib
GLIB_REQ = 2.32.0
AG_GST_GLIB_CHECK([$ GLIB_REQ])