C++ 在Windows上构建Gstreamer 1.0.5
我有自述文件中描述的项目设置,并安装和编译了GLib 2.28.8。当我开始编译gstreamer时,我会遇到数千个错误,这些错误向我表明构建设置或GLib版本有问题。我找不到其他适用于windows的GLib版本的简单来源(我在这里尝试了GLib的dev和sources版本:) 第一个编译错误是:C++ 在Windows上构建Gstreamer 1.0.5,c++,gstreamer,glib,C++,Gstreamer,Glib,我有自述文件中描述的项目设置,并安装和编译了GLib 2.28.8。当我开始编译gstreamer时,我会遇到数千个错误,这些错误向我表明构建设置或GLib版本有问题。我找不到其他适用于windows的GLib版本的简单来源(我在这里尝试了GLib的dev和sources版本:) 第一个编译错误是: ...\build\gstreamer-1.0.5\gst/gstobject.h(170): error C2079: 'lock' uses undefined struct '_GMutex'
...\build\gstreamer-1.0.5\gst/gstobject.h(170): error C2079: 'lock' uses undefined struct '_GMutex'
在gstobject中,锁的定义如下:
GMutex lock; /* object LOCK */
VisualStudio在gthread.h中定义的
typedef struct _GMutex GMutex;
所以我觉得一切都很好,但也许我忽略了什么。glibconfig.h还将GMutex*定义为GStaticMutex,这会造成干扰吗?也许您应该尝试将Glib更新为2.32.0 我使用Glib 2.32.4在Linux和Windows Xp上成功构建了GStreamer-1.0.5 请参阅configure.ac 油嘴滑舌 GLIB_REQ=2.32.0
AG_GST_GLIB_CHECK([$GLIB_REQ])我正在使用GLIB.2.28.8,也遇到了同样的问题。以下两个线程(和)也讨论了相关问题 在我的情况下,只需添加
struct _GMutex
{
/*< private >*/
gpointer p;
guint i[2];
};
struct\u GMutex
也有定义吗?在glibconfig.h中,有这样一个:typedef struct\u GMutex*GStaticMutex;typedef定义了GStaticMutex,请检查struct\u GMutex
本身的定义位置。当然-我找不到GLib中定义了哪里的GMutex。在进一步挖掘之后,我发现_GMutex、_GCond和_GPrivate都有typedef结构,用于它们的无下划线对应项(GMutex、GCond和GPrivate),但他们自己似乎没有任何定义。(在这里看着油嘴滑舌的自己)。虽然编译GLib似乎工作得很好,但GStreamer似乎不喜欢这样。思想?简单的C语言不是我真正的语言,所以可能我遗漏了一些东西。啊-很高兴知道有一个解决方案。谢谢你的跟进。对于从原始版本来到这里的任何人,gstreamer已经开始为所有平台提供构建:
struct _GMutex GMutex;