I am trying to create a project that uses the TagLib library. I'm not quite sure how to do this.
I downloaded TagLib 1.11.1 .
I built it as follows:
Create a zlib by first creating a CMake file to create a Visual Studio solution file, then creating this solution using Visual Studio:
mkdir build && & & cd build cmake .. -G "Visual Studio 14 2015 Win64" -DCMAKE_INSTALL_PREFIX = "e: \ workspace \ lib \ installed" msbuild / P: Configuration = Debugging INSTALL.vcxproj msbuild / P: Configuration = Release INSTALL. vcxproj
Create TagLib in the same way:
cd .... \ taglib-1.11.1 mkdir build && cd build cmake .. -G "Visual Studio 14 2015 Win64" -DCMAKE_INSTALL_PREFIX = "e: \ workspace \ lib \ installed" -DZLIB_INCLUDE_DIR = "e: \ workspace \ lib \ installed \ include "-DZLIB_LIBRARY =" e: \ workspace \ lib \ installed \ lib \ zlib.lib "-DWITH_ASF = on -DWITH_MP4 = on -DBUILD_EXAMPLES = on msbuild / P: Configuration = Release INSTALL.vcxproj
I am creating a simple Qt console application:

Then I add tag.lib from the tag.lib assembly above to E:\workspace\lib\installed\lib using Qt
Qt β Add Library β Library Type (External Library) β .......
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....
When trying to create a project in Qt, the following errors occur:
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
What should I do to fix this and work with 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....