我正在做一个项目,依赖于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 \发布于 2017-10-16 21:28:26
使用指定的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在默认位置,它应该可以工作。
发布于 2019-08-24 23:15:22
我通过将QMAKE_CFLAGS_ISYSTEM = -isystem更改为QMAKE_CFLAGS_ISYSTEM = -I (可以添加到.pro中)解决了这个问题。
对于Qt 5.10 +
发布于 2019-09-04 20:39:51
我认为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的搜索路径(尽管这不是必需的)。
https://stackoverflow.com/questions/46746736
复制相似问题