首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >GStreamer Qt窗口

GStreamer Qt窗口
EN

Stack Overflow用户
提问于 2013-12-03 20:24:41
回答 3查看 8.5K关注 0票数 7

关于在linux中为Qt配置.pro文件以运行GStreamer,有很多信息。但是在窗户上做同样的事情看起来很困难。我从他们的官方网站下载了Gst并运行了一个安装程序。现在它在D:\gstreamer\1.0\x86 .我从试图更改qt .pro文件的人那里找到了唯一的描述。我也是这么做的:

代码语言:javascript
复制
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?

代码语言:javascript
复制
#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完成。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 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文件中添加以下内容:

代码语言:javascript
复制
CONFIG += link_pkgconfig
PKGCONFIG += QtGStreamer-0.10

这种方法的缺点很自然,您必须首先使pkg-config在您的系统上工作。

票数 2
EN

Stack Overflow用户

发布于 2016-04-14 10:57:43

我发现这对我有用。它使用由GStreamer安装设置的环境变量,因此应该在其他PC上工作。64位有不同的环境变量,但原理相同。

代码语言:javascript
复制
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中设置它)。

票数 1
EN

Stack Overflow用户

发布于 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文件的代码:

代码语言:javascript
复制
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.10
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/20360932

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档