我目前正试图通过使用Qt / C从C#转移并摆脱我的平台边界.
我在我的旧项目中使用TagLibSharp,但我现在正尝试使用此处找到的原始C源:
http://developer.kde.org/~wheeler/taglib.html
我正处于一个受伤的世界,试图将其编译到我的应用程序中.大多数基于Linux的C对我来说是胡言乱语,我不知道如何使用Qt将这个库正确地包含到我的项目中.我正在使用Qt Creator完成我的大部分工作(我可能做的一切).
有谁能指点我一些有用的教程或指南?任何帮助我理解我甚至用这个来源做什么的东西都将不胜感激.我对C#和Windows编程有一个非常透彻的理解,但我对这些类型的开源项目所做的事情并没有很好的掌握.
谢谢!
编辑 – 答案在这里
我决定发布另一个更精致的问题.
Compiling static TagLib 1.6.3 libraries for Windows
一些较旧的编辑……
我现在使用Qt编译TagLib,但遇到“未定义的引用”错误.
*的.pro
INCLUDEPATH += ../$${TARGET}/taglib-win32 LIBS += -L"..\\$${TARGET}\\taglib-win32" LIBS += -llibtag #It seems to want this to be a *.dll,not a *.a? DEFINES += TAGLIB_NO_CONFIG
*的.cpp
#include <tag.h> #include <fileref.h> ... //None of these work,even though they are similar to examples given in TagLib source. TagLib::FileRef f("03.flac"); TagLib::String test = f.tag()->album(); TagLib::FileName *n = new TagLib::FileName("test"); TagLib::FileRef *f = new TagLib::FileRef();
以下是一些确切错误的示例:
./debug\mythread.o:C:\Users\jocull\Documents\My DropBox\Code\QT\QtTrayTime-build-desktop/../QtTrayTime/mythread.cpp:20: undefined reference to `_imp___ZN6TagLib7FileRefC1ENS_8FileNameEbNS_15AudioProperties9ReadStyleE' ./debug\mythread.o:C:\Users\jocull\Documents\My DropBox\Code\QT\QtTrayTime-build-desktop/../QtTrayTime/mythread.cpp:21: undefined reference to `_imp___ZNK6TagLib7FileRef3tagEv' ./debug\mythread.o:C:\Users\jocull\Documents\My DropBox\Code\QT\QtTrayTime-build-desktop/../QtTrayTime/mythread.cpp:42: undefined reference to `_imp___ZN6TagLib6StringD1Ev' ./debug\mythread.o:C:\Users\jocull\Documents\My DropBox\Code\QT\QtTrayTime-build-desktop/../QtTrayTime/mythread.cpp:42: undefined reference to `_imp___ZN6TagLib7FileRefD1Ev' collect2: ld returned 1 exit status
使用g的命令行步骤(Mac / Linux)
> ./configure –enable-shared = false –enable-static = true
>制作
> ???没有创建* .a或* .lib文件
为了将来参考,请查看
this post.我已经概述了我是如何通过Windows 7 QtCreator编译TagLib的.