如果我尝试在代码中引用外部TagLib库(例如TagLib::FileRef f(path);),那么在构建Qt Creator项目时会遇到以下错误,

symbol(s) not found for architecture x86_64
linker command failed with exit code 1 (use -v to see invocation)


Undefined symbols for architecture x86_64:
  "_inflate", referenced from:
      TagLib::zlib::decompress(TagLib::ByteVector const&) in libtag.a(tzlib.cpp.o)
  "_inflateEnd", referenced from:
      TagLib::zlib::decompress(TagLib::ByteVector const&) in libtag.a(tzlib.cpp.o)
  "_inflateInit_", referenced from:
      TagLib::zlib::decompress(TagLib::ByteVector const&) in libtag.a(tzlib.cpp.o)
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
make: *** [Opus.app/Contents/MacOS/Opus] Error 1
21:06:29: The process "/usr/bin/make" exited with code 2.
Error while building/deploying project Opus (kit: Desktop Qt 5.7.0 clang 64bit)
When executing step "Make"

我的简历,
QT       += core gui sql

greaterThan(QT_MAJOR_VERSION, 4): QT += widgets

TARGET = Opus
TEMPLATE = app


SOURCES += main.cpp\
        mainwindow.cpp \
    tabunit.cpp \
    tabholder.cpp \
    dbmanager.cpp \
    articleadditiondialog.cpp \
    articlefilemodel.cpp \
    directoryiterator.cpp \
    articleattributes.cpp

HEADERS  += mainwindow.h \
    tabunit.h \
    tabholder.h \
    dbmanager.h \
    articleproperty.h \
    articleadditiondialog.h \
    articlefilemodel.h \
    directoryiterator.h \
    articleattributes.h

FORMS    += mainwindow.ui \
    articleadditiondialog.ui

LIBS += -L$$PWD/../../../Libraries/taglib-1.11.1/taglib/ -ltag

INCLUDEPATH += $$PWD/../../../Libraries/taglib-1.11.1/include

在/Libraries/taglib-1.11.1/下,我有this

任何帮助,将不胜感激,谢谢。

最佳答案

添加

LIBS += -lz

到.pro文件

关于c++ - 将TagLib链接到Qt时出错,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/42215679/

10-11 16:28