Ho creato librerie statiche taglib
per Windows come segue. Gotto usa mingw, non VS.Errore di collegamento con taglib su Windows
- Partenza
git clone https://github.com/taglib/taglib.git git_taglib
- Installato
cmake
con installer Win32 da cmake.org - Configura
cmake -G "MinGW Makefiles" -DCMAKE_INSTALL_PREFIX=/C/taglib_package -DCMAKE_C_COMPILER=/C/MinGW4.4/bin/gcc.exe -DCMAKE_CXX_COMPILER=/C/MinGW4.4/bin/g++.exe -DENABLE_STATIC=ON -DENABLE_STATIC_RUNTIME=ON -DHAVE_ZLIB=0
- Compile
mingw32-make.exe
- Installare
mingw32-make.exe install
alC:\taglib_package
Nel mio progetto Qt, ho sto usando questa libreria come così
.pro
INCLUDEPATH+="C:/taglib_package/include/taglib"
QMAKE_LIBDIR += "C:/taglib_package/lib"
LIBS+= -lz -ltag
cpp
#include "fileref.h"
#include "taglib.h"
...
TagLib::FileRef f("Z:/Documents/sample.mp3");
TagLib::String artist = f.tag()->artist();
std::cout<< "Artist is " << artist << std::endl;
Questo porta alla seguente errore di collegamento
release/main.o:main.cpp:(.text+0x93): undefined reference to `_imp___ZN6TagLib8FileNameC1EPKc'
release/main.o:main.cpp:(.text+0xb3): undefined reference to `_imp___ZN6TagLib7FileRefC1ENS_8FileNameEbNS_15AudioProperties9ReadStyleE'
release/main.o:main.cpp:(.text+0xdf): undefined reference to `_imp___ZNK6TagLib7FileRef3tagEv'
release/main.o:main.cpp:(.text+0x101): undefined reference to `_imp___ZN6TagLib6StringD1Ev'
release/main.o:main.cpp:(.text+0x10a): undefined reference to `_imp___ZN6TagLib7FileRefD1Ev'
release/main.o:main.cpp:(.text+0x210): undefined reference to `_imp___ZN6TagLib7FileRefD1Ev'
release/main.o:main.cpp:(.text+0x2bd): undefined reference to `_imp___ZN6TagLib6StringD1Ev'
collect2: ld returned 1 exit status
mingw32-make[1]: *** [release\taglib_experiment.exe] Error 1
mingw32-make: *** [release] Error 2
19:56:21: The process "C:\MinGW4.4\bin\mingw32-make.exe" exited with code 2.
Error while building/deploying project taglib_experiment (kit: Desktop)
When executing step 'Make'
Il codice funziona bene su un Mac. Quindi suppongo che il colpevole sia la lib. Come dovrei compilare la libreria per risolvere l'errore di collegamento sopra riportato?
Hi @S B. Penso che sto avendo un problema simile come quella che si aveva [qui: errore di collegamento con taglib su Windows] (http://stackoverflow.com/questions/26889486/linking-error-with-taglib-on-windows). Vi prego di dare un'occhiata alla mia domanda [qui: Come includere una biblioteca in un progetto Qt] (http://stackoverflow.com/questions/40672127/how-to-include-a-library-in-a- qt-project) e vedi se puoi aiutare? È un problema [TagLib 1.11.1.] (Http://taglib.org/#windows). Sarebbe davvero utile se aiutassi con qualche input. Grazie in anticipo. –