Как включить библиотеку в проект Qt

Я пытаюсь создать проект, который использует библиотеку TagLib. Я не совсем уверен, как именно это сделать.

Я скачалTagLib 1.11.1.

Я построил это следующим образом:

Создайте zlib. Сначала CMake создаст файл решения Visual Studio, а затем создаст это решение с помощью Visual Studio:

mkdir build && cd build cmake .. -G "Visual Studio 14 2015 Win64" -DCMAKE_INSTALL_PREFIX = "e: \ workspace \ lib \ Installed" msbuild / P: Конфигурация = Отладка INSTALL.vcxproj msbuild / P: Конфигурация = Выпуск INSTALL.vcxproj

Соберите TagLib примерно так же:

cd .... \ taglib-1.11.1 mkdir build && cd build cmake .. -G "Visual Studio 14 2015 Win64" -DCMAKE_INSTALL_PREFIX = "e: \ workspace \ lib \установлено" -DZLIB_INCLUDE_DIR = "e: \ workspace \ lib \ instal \ include "-DZLIB_LIBRARY =" e: \ workspace \ lib \ instal \ lib \ zlib.lib "-DWITH_ASF = on -DWITH_MP4 = on -DBUILD_EXAMPLES = в msbuild / P: конфигурация = выпуск INSTALL.vcxproj

Я создаю простое консольное приложение Qt:

Я тогда добавляюtag.lib из TagLib Build выше вE:\workspace\lib\installed\lib используя Qt

Qt -> Добавить библиотеку -> Тип библиотеки(Внешняя библиотека) -> .......

main.cpp:

#include <QCoreApplication>
#include <QDebug>

#include <taglib/fileref.h>

int main(int argc, char *argv[])
{
    QCoreApplication a(argc, argv);
    TagLib::FileRef f("D:/Dire Straits - Sultans of Swing.mp3");
    return a.exec();
}

taglibtest.pro

QT += core
QT -= gui

CONFIG += c++11

TARGET = taglibtest
CONFIG += console
CONFIG -= app_bundle

TEMPLATE = app

SOURCES += main.cpp

win32:CONFIG(release, debug|release): LIBS += -L$PWD/taglib/builds/ -ltag
else:win32:CONFIG(debug, debug|release): LIBS += -L$PWD/taglib/builds/ -ltagd
else:unix: LIBS += -L$PWD/taglib/builds/ -ltag

INCLUDEPATH += $PWD/taglib/builds
DEPENDPATH += $PWD/taglib/builds

win32:CONFIG(release, debug|release): LIBS += -L$PWD/taglib/builds/ -ltag
else:win32:CONFIG(debug, debug|release): LIBS += -L$PWD/taglib/builds/ -ltagd
else:unix: LIBS += -L$PWD/taglib/builds/ -ltag

INCLUDEPATH += $PWD/taglib/builds
DEPENDPATH += $PWD/taglib/builds

HEADERS += \
    taglib/aifffile.h \
    taglib/aiffproperties.h \
    taglib/apefile.h \
    taglib/apefooter.h \
    taglib/apeitem.h \
    taglib/apeproperties.h \
    taglib/apetag.h \
    taglib/asfattribute.h \
    taglib/asffile.h \
    taglib/asfpicture.h \
    taglib/asfproperties.h \
    etc....
    etc....

Я получаю следующие ошибки, когда пытаюсь собрать проект в Qt:

F:\taglibtest\main.cpp:-1: error: undefined reference to `_imp___ZN6TagLib8FileNameC1EPKc'  

F:\taglibtest\main.cpp:-1: error: undefined reference to `_imp___ZN6TagLib7FileRefC1ENS_8FileNameEbNS_15AudioProperties9ReadStyleE'  

F:\taglibtest\main.cpp:-1: error: undefined reference to `_imp___ZN6TagLib7FileRefD1Ev'  

F:\taglibtest\main.cpp:-1: error: undefined reference to `_imp___ZN6TagLib7FileRefD1Ev'  

:-1: error: release/main.o: bad reloc address 0x0 in section `.ctors'  

:-1: error: final link failed: Invalid operation  

collect2.exe:-1: error: error: ld returned 1 exit status  

Что я должен сделать, чтобы это исправить и начать работать с TagLib?

taglibtest.pro

QT += core
QT -= gui

CONFIG += c++11

TARGET = taglibtest
CONFIG += console
CONFIG -= app_bundle

TEMPLATE = app

SOURCES += main.cpp

win32:CONFIG(release, debug|release): LIBS += -L$PWD/taglib/builds/ -ltag
else:win32:CONFIG(debug, debug|release): LIBS += -L$PWD/taglib/builds/ -ltagd
else:unix: LIBS += -L$PWD/taglib/builds/ -ltag

INCLUDEPATH += $PWD/taglib/builds
DEPENDPATH += $PWD/taglib/builds

win32:CONFIG(release, debug|release): LIBS += -L$PWD/taglib/builds/ -ltag
else:win32:CONFIG(debug, debug|release): LIBS += -L$PWD/taglib/builds/ -ltagd
else:unix: LIBS += -L$PWD/taglib/builds/ -ltag

INCLUDEPATH += $PWD/taglib/builds
DEPENDPATH += $PWD/taglib/builds

HEADERS += \
    taglib/aifffile.h \
    taglib/aiffproperties.h \
    taglib/apefile.h \
    taglib/apefooter.h \
    taglib/apeitem.h \
    taglib/apeproperties.h \
    taglib/apetag.h \
    taglib/asfattribute.h \
    taglib/asffile.h \
    taglib/asfpicture.h \
    taglib/asfproperties.h \
    etc....
    etc....

Ответы на вопрос(1)

Ваш ответ на вопрос