Ошибка связывания с taglib в Windows

я построил taglib Статические библиотеки для Windows работают следующим образом. Надо использовать Mingw, а не VS.

  1. Проверять, выписываться git clone https://github.com/taglib/taglib.git git_taglib
  2. Установлены cmake с установщиком Win32 с cmake.org
  3. конфигурировать 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
  4. компилировать mingw32-make.exe
  5. устанавливать mingw32-make.exe install в C:\taglib_package

В моем проекте Qt я использую эту библиотеку как

.профессионал

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;

Это приводит к следующей ошибке ссылки

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'

Код отлично работает на Mac. Итак, я полагаю, виновником является библиотека. Как мне скомпилировать библиотеку, чтобы устранить вышеуказанную ошибку компоновки?

5

Решение

Использовать -DTAGLIB_STATIC переключаться при компиляции ваш код

2

Другие решения


По вопросам рекламы [email protected]