C++ 如何在VisualStudio中使用libpng?

C++ 如何在VisualStudio中使用libpng?,c++,visual-studio,boost,visual-studio-2015,libpng,C++,Visual Studio,Boost,Visual Studio 2015,Libpng,我正在使用boost通用图像库,它需要libpng。我构建了libpng并获得了libpng.lib、zlib.lib和libpngd.lib文件。当我试图编译我的项目时,VisualStudio给出了一个致命错误 fatal error LNK1120: 21 unresolved externals 带有大量未解析的外部符号,如\u png\u set\u sig\u bytes和\u png\u read\u row。这里发生了什么以及如何解决它?来自MSDN: 你必须这样做;在.ex

我正在使用boost通用图像库,它需要libpng。我构建了libpng并获得了libpng.lib、zlib.lib和libpngd.lib文件。当我试图编译我的项目时,VisualStudio给出了一个致命错误

fatal error LNK1120: 21 unresolved externals
带有大量未解析的外部符号,如
\u png\u set\u sig\u bytes
\u png\u read\u row
。这里发生了什么以及如何解决它?

来自MSDN:


你必须这样做;在.exe的link命令中显式指定“libpng.lib”、“zlib.lib”和“libpngd.lib”。

所以这是一个头脑简单的傻瓜说的,也许这会有帮助……我花了一点时间才理解。基本上,您正在下载源代码。这意味着,您必须是编译源代码的人

Windows可以在命令提示符下编译用C编写的程序。您必须构建程序,它会输出一个.dll或.lib文件。这些是链接到VisualStudio应用程序的文件

您可以将依赖项设置为头文件,头文件通常类似于源代码根文件夹或所有这些.h文件所在的位置

然后将链接器设置为链接到.dll或.lib文件。在BoostC++的情况下,您需要链接到一个“lib”文件夹

我认为你需要的是复习并完全掌握基本知识。下面是Microsoft提供的一个链接,介绍Windows如何从命令提示符编译C程序:

首先检查您是否正在链接Library,因此您构建了libpng和friends-很好。是否确实已将这些库包含在.exe项目的“链接”中?请看这里:@paulsm4我已将这些库包括在include目录、库目录和链接器的附加库目录中。它仍然会产生错误。我使用libpng,没有问题。所以,如果你说你做的每件事都是正确的,除非我们看到你的机器,否则除了说“你做了你认为你做得正确的错误的事情”之外,实际上什么也做不了。你是否在你的.exe的link命令中显式地包括了“libpng.lib”、“zlib.lib”和“libpngd.lib”?PS:您没有在“包含目录”中“包含库”:(包含目录包含标题。这似乎有效-您正在成功编译。
To add .lib files as linker input in the development environment

    Open the project's Property Pages dialog box. For details, see Setting Visual C++ Project Properties.

    Click the Linker folder.

    Click the Input property page.

    Modify the Additional Dependencies property.