在Windows上将错误与taglib链接 [英] Linking error with taglib on Windows

查看:224
本文介绍了在Windows上将错误与taglib链接的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我为Windows构建了taglib静态库,如下所示.座右铭使用mingw,而不是VS.

I built taglib static libraries for Windows as follows. Gotto use mingw, not VS.

  1. 签出git clone https://github.com/taglib/taglib.git git_taglib
  2. 使用cmake.org中的Win32安装程序安装cmake
  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
  1. Check out git clone https://github.com/taglib/taglib.git git_taglib
  2. Installed cmake with Win32 installer from cmake.org
  3. Configure 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. Compile mingw32-make.exe
  5. Install mingw32-make.exe install to C:\taglib_package

在我的Qt项目中,我像这样使用该库

In my Qt project, I am using this library like thus

.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;

这会导致以下链接错误

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上运行正常.因此,我认为罪魁祸首是库.我应该如何编译该库以解决上述链接错误?

The code works fine on a Mac. So I suppose the culprit is the lib. How should I compile the library to solve the above linking error?

推荐答案

在编译您的代码

这篇关于在Windows上将错误与taglib链接的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆