正确的libpng .lib版本

时间:2015-05-12 20:03:34

标签: c++ visual-studio-2013 libpng

我正在使用Visual Studio 2013。 我已经通过包管理器控制台安装了libpng

Install-Package libpng 

我想使用https://github.com/DavidEGrayson/ahrs-visualizer/blob/master/png_texture.cpp

中的函数png_texture_load()

我将.h和.cpp文件复制到我的项目中。

尝试构建,但是我遇到了很多错误LNK2019:未解析的外部符号

所以我试着在这里添加libpng(libpng15.lib) 项目设置→链接器→输入→附加依赖项。

但现在我得到了

error LNK1104: cannot open file libpng15.lib

似乎无法找到它。我试图添加路径(C:\ Users \ PanStudent \ Documents \ Visual Studio 2013 \ Projects \ pa199_3DBreakout \ packages \ libpng.1.5.10.11) Linker-> General->其他图书馆指令

还是一样。我能做什么?感谢

编辑:我查看了该文件夹,并且有很多版本的libpng15.lib。动态,静态,调试,发布,x64,win32。我怎样才能找出哪一个是正确的?

1 个答案:

答案 0 :(得分:0)

查看ItemDefinitionGroup文件中的libpng.targets,您会看到条件'$(PlatformToolset.ToLower())' == 'v100'$(PlatformToolset.ToLower().IndexOf('v110'))。但默认情况下,Visual Studio 2013具有PlatformToolset v120。所以libpng只是没有为VisualStudio 2013编译。

如果libpng是C库,那么您只需修改*.target个文件并为v120工具集添加条件,或者您可以手动链接库。在其他情况下,您应该使用VisualStudio 2013编译器重建libpng。

此上下文中的静态库表示具有静态C ++运行时的静态库(MT,编译器的MTd选项)。动态库是指具有动态C ++运行时(MD,MDd)的动态库。当您使用动态libpng时,您应该将libpng.redist中的dll文件复制到您的应用程序可执行文件中以启动您的程序。