在Windows上构建Gstreamer 1.0.5

Building Gstreamer 1.0.5 on Windows

本文关键字:Gstreamer 构建 Windows      更新时间:2023-10-16

我已经按照自述文件中的描述设置了项目,并安装和编译了GLib 2.28.8。当我开始编译gstreamer时,我得到了成千上万的错误,这些错误向我表明构建设置或GLib版本有问题。我找不到其他windows版本的GLib的简单源代码(我在这里尝试了GLib的开发和源代码版本:http://www.gtk.org/download/win32.php)。

第一个编译错误是:
...buildgstreamer-1.0.5gst/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

我在Linux和Windows Xp上成功构建了GStreamer-1.0.5,使用Glib 2.32.4

看到configure.ac

GLib

黑暗

GLIB_REQ = 2.32.0

AG_GST_GLIB_CHECK ([$ GLIB_REQ])