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

GStreamer linker error LNK2019 and LNK2001 in Qt C++

本文关键字:错误 LNK2019 LNK2001 链接 c++ 中的 GStreamer Qt      更新时间:2023-10-16

我在正确链接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指出这可能是问题所在。

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