Qt adding library gstreamer-1.0

Qt adding library gstreamer-1.0

本文关键字:gstreamer-1 library adding Qt      更新时间:2023-10-16

我正在做一个项目,依赖于gstreamer-1.0,glib-2.0和gobject-2.0。在控制台和VSCode中构建工作正常,但是当我到达Qt时,我收到以下错误消息:

:error: cannot find /usr/lib/x86_64-linux-gnu/: File format not recognized

我的 .pro 文件:

QT += core
QT -= gui
TARGET = Accord
CONFIG += console
CONFIG -= app_bundle
TEMPLATE = app
SOURCES += main.cpp 
    working_directory.cpp 
    player_core.cpp 
    message.cpp
HEADERS += 
    working_directory.h 
    message.h 
    player_core.h

CONFIG += link_pkgconfig 
            c++11
PKGCONFIG += gstreamer-1.0 
        glib-2.0 
        gobject-2.0 
        gio-2.0
INCLUDEPATH += /usr/local/include/ 
    /usr/include 
    /usr/include/gstreamer-1.0 
    /usr/include/glib-2.0 
    /usr/lib/x86_64-linux-gnu/glib-2.0/include 
    /usr/lib/x86_64-linux-gnu/gstreamer-1.0/include
LIBS += /usr/lib/x86_64-linux-gnu/ -lgstreamer-1.0 -lgobject-2.0 -lglib-2.0 
                    -lgio-2.0 

使用指定的 pkgconfig 应该就足够了。无需单独指定库。这在Windows中可能是必需的,但在Linux中不是必需的。我在Linux(Ubuntu)中使用下一个变量:

CONFIG += link_pkgconfig
PKGCONFIG += gstreamer-1.0 glib-2.0 gobject-2.0 gstreamer-app-1.0 gstreamer-pbutils-1.0

如果您的 GStreamer 位于默认位置,它应该可以工作。

我通过更改QMAKE_CFLAGS_ISYSTEM = -isystem解决了它到 QMAKE_CFLAGS_ISYSTEM = -I(可以添加到 .pro)。

对于 Qt 5.10 +

我认为LIBS += /usr/lib/x86_64-linux-gnu/不正确,因此错误: cannot find /usr/lib/x86_64-linux-gnu/: File format not recognized .

你可能的意思是

LIBS += -L/usr/lib/x86_64-linux-gnu/

将目录添加到ld 的搜索路径(尽管这不是必需的)。