关于在linux中为Qt配置.pro文件以运行GStreamer,有很多信息。但是在窗户上做同样的事情看起来很困难。我从他们的官方网站下载了Gst并运行了一个安装程序。现在它在D:\gstreamer\1.0\x86 .我从试图更改qt .pro文件的人那里找到了唯一的描述。我也是这么做的:
INCLUDEPATH += c:/gstreamer/1.0/x86/include \
c:/gstreamer/1.0/x86/include/gstreamer-1.0/gst \
c:/gstreamer/1.0/x86/include/glib-2.0\
c:/gstreamer/1.0/x86/include/glib-2.0/glib \
c:/gstreamer/1.0/x86/lib/glib-2.0/include
LIBS += -Lc:/gstreamer/1.0/x86/lib
CONFIG += c:/gstreamer/1.0/x86/lib/pkgconfig在输入"gst_init(“和其他用于gstreamer的内容时提供帮助,但它给出了一个错误)。
对gst_init的未定义引用
这就是问题所在。如何在windows中连接GStreamer?
#include <QCoreApplication>
#include <gst/gst.h>
int main(int argc, char *argv[])
{
gst_init(NULL,NULL);
//g_print("abc");
return 0;
}C:/Qt/Qt5.1.1/Tools/mingw48_32/bin/mingw32-make -f Makefile.Debug mingw32-make1:输入目录'D:/Projects/AllTests/Qt/build-Console-Desktop_Qt_5_1_1_MinGW_32bit-Debug‘g++ -Wl,-subsystem,控制台-mthreads -o debug\Console.exe debug/main.o-LC:/gstreamer/1.0/x86/lib -LC:\Qt\Qt5.1.1\5.1.1\mingw48_32\lib -lQt5Cored debug/main.o:
main': D:\Projects\AllTests\Qt\build-Console-Desktop_Qt_5_1_1_MinGW_32bit-Debug/../Console/main.cpp:8: undefined reference togst_init的-lQt5Cored-lQt5Cored调试/main.o:错误: ld返回1退出状态Makefile.Debug:77:目标' debug\Console.exe‘失败的配方'D:/Projects/AllTests/Qt/build-Console-Desktop_Qt_5_1_1_MinGW_32bit-Debug‘makefile:34:目标’调试‘失败的配方32-make:*调试错误2 00:20:18: Process«C:\Qt\Qt5.1.1\Tools\mingw48_32\bin\mingw32-make.exe»用代码2完成。
发布于 2013-12-03 20:41:48
您必须指定必须链接二进制文件的gstreamer库。
根据这个qmake文档,通过发出LIBS += -Lc:/gstreamer/1.0/x86/lib命令,qmake要在给定路径中查找库,而不是实际链接到二进制文件的库。我不太熟悉gstreamer,所以我不确定在您介绍的特定情况下必须链接哪些库,但我想您将在gstreamer/1.0/x86/lib中找到它们。如果不确定是否可以将它们全部添加到小写"l“前面的列表中,则将它们添加到它们的名称中。例如,如果这个库被称为数学,您可以通过将-lmath附加到列表中来添加它。只是小心不要同时添加同一个库的多个版本,比如调试版本和发布版本,否则您肯定会得到多个引用链接错误。
不像上面建议的那样手动指定应该链接到二进制文件的库,您还可以选择使用pkg-config为您做艰苦的工作。这是gstreamer的文档声明它需要在.pro文件中添加以下内容:
CONFIG += link_pkgconfig
PKGCONFIG += QtGStreamer-0.10这种方法的缺点很自然,您必须首先使pkg-config在您的系统上工作。
发布于 2016-04-14 10:57:43
我发现这对我有用。它使用由GStreamer安装设置的环境变量,因此应该在其他PC上工作。64位有不同的环境变量,但原理相同。
QT += core gui
TARGET = GStreamerTest4
TEMPLATE = app
SOURCES += \
qt-videooverlay.cpp
HEADERS +=
FORMS +=
GstreamerDir=$$(GSTREAMER_1_0_ROOT_X86)
INCLUDEPATH = $${GstreamerDir}/include/gstreamer-1.0
INCLUDEPATH += $${GstreamerDir}/include/glib-2.0
INCLUDEPATH += $${GstreamerDir}/lib/glib-2.0/include
INCLUDEPATH += $${GstreamerDir}/lib/gstreamer-1.0/include
LIBS = $${GstreamerDir}/lib/gstreamer-1.0.lib
LIBS += $${GstreamerDir}/lib/*.lib此外,您需要确保C:\gstreamer\1.0\x86\bin在路径上(控制面板或可以在QtCreator中设置它)。
发布于 2014-02-13 07:06:23
我发现,在windows上,您确实可以避免使用pkg-config之类的东西,而不是需要将、gstreamer和.h所需的所有内容都包括在内。但是,您还需要包括GTK。Kei的一个很好的回答为qt在VS 2010 http://gstreamer-devel.966125.n4.nabble.com/Configure-Visual-Studio-2010-for-GStreamer-td3804989.html中提供了一个想法,但是如果你把他写的所有东西都传输到.pro文件中,它也会起作用(至少对我是这样)。
以下是pro文件的代码:
INCLUDEPATH += C:/ ... /GStreamer/v0.10.6/sdk/include/gstreamer-0.10 \
C:/ ... /GTK/include/libxml2 \
C:/ ... /GTK/include/libglade-2.0 \
C:/ ... /GTK/lib/gtkglext-1.0/include \
C:/ ... /GTK/lib/glib-2.0/include \
C:/ ... /GTK/lib/gtk-2.0/include \
C:/ ... /GTK/include/gtkglext-1.0 \
C:/ ... /GTK/include/atk-1.0 \
C:/ ... /GTK/include/cairo \
C:/ ... /GTK/include/pango-1.0 \
C:/ ... /GTK/include/glib-2.0 \
C:/ ... /GTK/include/gtk-2.0 \
C:/ ... /GTK/include
LIBS += -LC:/ ... /GTK/lib -LC:/ ... /GStreamer/v0.10.6/sdk/lib -lgstreamer-0.10 -lglib-2.0 -lgobject-2.0 -lgtk-win32-2.0 -lgstinterfaces-0.10https://stackoverflow.com/questions/20360932
复制相似问题