我对C ++很新,并试图将TagLib library用于我正在进行的项目。我正在使用Windows 7 64位上的Visual Studio 2010中的非托管C ++。我之前从未使用过外部库,所以我对如何解决这个问题非常困惑。
从this blog entry我得到了libtaglib.a和taglib.dll文件。关于如何使用TagLib,我遇到了this SO question,但它处理的是QT Creator,而不是Visual Studio,我对这个主题知之甚少,无法理解将其翻译成Visual Studio所需的内容。
所以,有些问题:
我一直在谷歌寻找一种方法来做到这一点,但我的主要问题是我遇到的一切都在我的头上。如果需要更多信息,请告诉我。很感谢任何形式的帮助!谢谢!
答案 0 :(得分:4)
我似乎已经成功地运作了。以下是我所做的大致概述:
1。)我使用CMake生成Visual Studio解决方案。
2.。)我试图在VS解决方案中构建标签项目,但它失败了。
3.)我对这里概述的几个源文件进行了更正:http://old.nabble.com/taglib-fails-to-compile-with-MS-VC%2B%2B-2010-td29185593.html
4.。)我在发布模式下再次构建了标签项目。这次是成功的。
5.)我将生成的dll,def和lib文件复制到与项目源文件相同的目录中。
6。)我将头文件从taglib源复制到我项目中的一个子目录中(不确定这是否是完全好的做法)
7.。)在我的项目设置中,我将子目录设置为头文件作为附加的包含目录。
8。)我通过添加>现有项目将dll,exp和lib文件添加到我的项目中。
9。)我从taglib示例中添加了一些代码并构建它。一切正常,我想我明白了。
我遇到过一个警告,因为DLL是在发布模式下构建的,我的项目必须在发布模式下运行,否则会崩溃。我猜测如果我用一个内置调试模式替换DLL我可以在调试模式下运行我的程序,但我没有尝试过这个。
答案 1 :(得分:3)
您不能使用特定于GCC的库(您可以告诉他们,因为他们有.a
扩展名)与Visual Studio。您必须从源构建库才能将其与MSVC一起使用。完成后,将构建过程中生成的.lib
添加到项目中就很简单,事情应该是开箱即用的。 (请注意,无论您是否正在编译动态链接,都需要.lib
- 在msvc土地中无关紧要)
编辑 - 在查看TagLib本身之后 -
为了编译TagLib,您需要获得CMake build system和TagLib itself,并让CMake为您构建可视化工作室解决方案。使用该解决方案,您将能够构建所需的.lib
和.dll
。请注意,因为TagLib是一个KDE库,所以您可能还需要构建一些QT位,以便一切正常工作。但是,我没有具体的图书馆经验,所以我不会在这里有所帮助。
答案 2 :(得分:1)
如果你有.dll文件,你不必重新编译源代码(创建.lib文件)。使用dumpbin / exports和lib(两者都带有Visual Studio),您可以创建一个可以与应用程序链接的库。在此链接中,您可以看到一个很好的解释:http://www.coderetard.com/2009/01/21/generate-a-lib-from-a-dll-with-visual-studio/
但是作为Billy Said,可能你需要QT的其他部分才能使用这个库。