当前位置: 技术问答>linux和unix
关于Glib和gstreamer应用过程中使用动态库的问题
来源: 互联网 发布时间:2017-02-27
本文导语: 首先gstreamer的运行的运行环境和sdk是在google开源代码上下载的ossbuild的 在vs2010中使用,普通调用一个gstreamer的接口是没问题的 比如 GstElement *ele = gst_element_factory_make("filesrc","file"); 这样是ok的 但是如果我不配置sdk环...
首先gstreamer的运行的运行环境和sdk是在google开源代码上下载的ossbuild的
在vs2010中使用,普通调用一个gstreamer的接口是没问题的
比如
GstElement *ele = gst_element_factory_make("filesrc","file");
这样是ok的
但是如果我不配置sdk环境采用LoadLibrary的方式打开gstreamer的动态库然后索引相应函数然后通过函数指针的形式去调用,就会报错
比如
FuncName TestFun = NULL;
g_hLib = LoadLibrary(TEXT("gstreamer.dll"));
TestFun = (FuncName)GetProcAddress(g_hLib,"gst_element_factory_make");
GstElement *Ele = TestFun("filesrc", "file");
调用TestFun的时候就会出现
Glib-GObject-WARNING **: cannot register existing type 'GstObject'
Glib-CRITICAL **:g_once_init_leave: assertion 'initialization_value != 0' failed
等等这些关于glib的报错
搜索了下网上也有其他人发过类似的错误,不过并不是gstreamer,总之是基于gtk或者glib的一些应用程序,也是采用LoadLibrary打开动态库来调用库里的函数,就会出现这样的问题
有没有知道这个问题该如何解决?
在vs2010中使用,普通调用一个gstreamer的接口是没问题的
比如
GstElement *ele = gst_element_factory_make("filesrc","file");
这样是ok的
但是如果我不配置sdk环境采用LoadLibrary的方式打开gstreamer的动态库然后索引相应函数然后通过函数指针的形式去调用,就会报错
比如
FuncName TestFun = NULL;
g_hLib = LoadLibrary(TEXT("gstreamer.dll"));
TestFun = (FuncName)GetProcAddress(g_hLib,"gst_element_factory_make");
GstElement *Ele = TestFun("filesrc", "file");
调用TestFun的时候就会出现
Glib-GObject-WARNING **: cannot register existing type 'GstObject'
Glib-CRITICAL **:g_once_init_leave: assertion 'initialization_value != 0' failed
等等这些关于glib的报错
搜索了下网上也有其他人发过类似的错误,不过并不是gstreamer,总之是基于gtk或者glib的一些应用程序,也是采用LoadLibrary打开动态库来调用库里的函数,就会出现这样的问题
有没有知道这个问题该如何解决?
|
是不是要设置一些环境变量比如
GST_PLUGIN_PATH
GST_PLUGIN_PATH
|
pkg-config --libs --cflags gstreamer-0.10 glib-2.0
您可能感兴趣的文章:
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。