Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/fsharp/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 在Windows上构建Gstreamer 1.0.5_C++_Gstreamer_Glib - Fatal编程技术网

C++ 在Windows上构建Gstreamer 1.0.5

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'

我有自述文件中描述的项目设置,并安装和编译了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'
在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;