Qt C ++中的GStreamer链接器错误LNK2019和LNK2001

时间:2015-05-19 14:36:57

标签: c++ qt linker gstreamer lnk

我在qmake中正确链接gstreamer库时遇到了一些麻烦。

所以,我编写的库使用gstreamer,我将这些行添加到.pro文件中:

INCLUDEPATH += ../OtherLibs/GStreamer/Include
INCLUDEPATH += ../OtherLibs/GStreamer/Include/glib-2.0
INCLUDEPATH += ../OtherLibs/GStreamer/Include/libxml2
LIBS += -L../OtherLibs/GStreamer/Lib -lgobject-2.0 -lgstreamer-0.10 -lglib-2.0 -lgstapp-0.10

我运行qmake然后编译,我根本没有收到任何错误消息。

我在另一个Qt项目中使用这个库,我得到:

WTAV.lib(contentvideo.obj):-1: error: LNK2019: unresolved external symbol g_assertion_message_expr referenced in function "protected: void __cdecl ContentVideo::load(class QString)" (?load@ContentVideo@@IEAAXVQString@@@Z)

WTAV.lib(mediapipeline.obj):-1: error: LNK2001: unresolved external symbol g_assertion_message_expr

我知道标题和库的路径是正确的,因为当我更改它时,我会收到类似“gst / gst.h not found”的编译错误。

我不知道自己可能做错了什么,也许有人可以指出我正确的方向。

提前致谢。

解决:

我正在使用64位编译器和使用32位gstreamer SDK编译项目...感谢Pavel Krasavin指出它可能是问题。

1 个答案:

答案 0 :(得分:1)

g_assertion_message_expr()由libglib-2.0.so导出。您应该在路径上检查此库是否可用( -L ../ OtherLibs / GStreamer / Lib )。另外,检查此库与项目具有相同的体系结构。