如何修复GLib-GObject-WARNING **:无法注册现有类型`gchar'

时间:2015-07-01 19:14:18

标签: c++ gstreamer node-gyp

我正在为gstreamer构建node.js包装器。我能够构建并提取大量信息和对象(例如版本,插件,功能,大写和元素工厂。)

但是,当我调用gst_element_factory_make或gst_element_factory_create时,我得到以下输出:

(<unknown>:27080): GLib-GObject-WARNING **: cannot register existing type `gchar'
**
 GLib-GObject:ERROR:gvaluetypes.c:457:_g_value_types_init: assertion failed: (type == G_TYPE_CHAR)
Abort trap: 6

GTK window with Quartz [starting from an issue with GStreamer]的答案似乎表明可能存在某种版本冲突,但是我对C ++没有足够的经验并且让文件知道这是否是我的问题。下面是我的binding.gyp的libraries部分,它(通过实验)是构建,运行和获取版本所需的最少模块。

"/Library/Frameworks/Gstreamer.framework/Libraries/libgobject-2.0.a",
"/Library/Frameworks/Gstreamer.framework/Libraries/libgstreamer-0.10.a",
"/Library/Frameworks/Gstreamer.framework/Libraries/libffi.a",
"/Library/Frameworks/Gstreamer.framework/Libraries/libglib-2.0.a",
"/Library/Frameworks/Gstreamer.framework/Libraries/libgmodule-2.0.a",
"/Library/Frameworks/Gstreamer.framework/Libraries/libiconv.a",
"/Library/Frameworks/Gstreamer.framework/Libraries/libintl.a",
"/Library/Frameworks/Gstreamer.framework/Libraries/libxml2.a"

我创建了一个小型测试项目来说明我的问题。它位于http://s000.tinyupload.com/?file_id=00675589235220460725

的zip文件中

2 个答案:

答案 0 :(得分:1)

为此&#39; gchar&#39;很奇怪。您遇到此错误的一种情况是,如果您有一个过时的插件副本,那么您尝试两次注册插件GType。

我要做的就是将其作为:

运行
G_DEBUG="fatal_warnings" gdb --args ./your-app

并从gdb类型&#39;运行&#39;一旦它终止&#39; bt&#39;得到回溯。如果这是来自插件注册,您可能需要查看gst调试日志(GST_DEBUG =&#34; *:6&#34;以查看是否找到任何插件两次。

答案 1 :(得分:0)

所以,我发现我安装了gstreamer 0.10,在更新到1.0之后,修复了次要代码差异,包括AppKit框架(我在OSX上)我终于能够解决这个问题。

相关问题