【问题标题】:Qt adding library gstreamer-1.0Qt 添加库 gstreamer-1.0
【发布时间】:2018-03-26 13:59:21
【问题描述】:

我正在做一个项目,依赖于 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 \

【问题讨论】:

    标签: c++ qt gstreamer glib gobject


    【解决方案1】:

    指定 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 位于默认位置,它应该可以工作。

    【讨论】:

      【解决方案2】:

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

      对于 Qt 5.10 +

      【讨论】:

        【解决方案3】:

        我认为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 的搜索路径(尽管这不是必需的)。

        【讨论】:

          猜你喜欢
          • 2014-10-22
          • 1970-01-01
          • 2017-02-12
          • 1970-01-01
          • 2011-01-24
          • 1970-01-01
          • 2023-04-08
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多