1
votes

I am making a project, dependent on gstreamer-1.0, glib-2.0 and gobject-2.0. Building in console and in VSCode works fine, but when i get to Qt, i receive the following error message:

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

My .pro file:

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 \
3

3 Answers

3
votes

With specified pkgconfig should be enough. You don't need to specify the libraries independently. This might be necessary in Windows, but not in Linux. I use the next variables in Linux (Ubuntu):

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

If your GStreamer is in the default location it should work.

0
votes

I solved it by changing QMAKE_CFLAGS_ISYSTEM = -isystem to QMAKE_CFLAGS_ISYSTEM = -I (can be added to .pro).

for Qt 5.10 +

-1
votes

I think that LIBS += /usr/lib/x86_64-linux-gnu/ is incorrect, hence the error: cannot find /usr/lib/x86_64-linux-gnu/: File format not recognized.

You probably meant

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

to add the directory to ld's search path (although that shouldn't be necessary).