使用libpng时未解决的外部



VS新手!

我正在使用libpng库,我通过NuGet在VS 2019中安装,用于c++项目。我在renderer.h中有一个函数loadPng,它沿着手册的行读取png。包括png.h。代码本身没有错误。错误信息是:

LNK2019 reference to an unresolved external symbole "png_set_sig_bytes" in function ""int __cdecl loadPng(char const *,struct img_format *)" (?loadPng@@YAHPEBDPEAUimg_format@@@Z)"

表示库中的所有函数。

我怎么能解决这个问题,或者我搞砸了什么?(我想我没有正确设置库…)

如果你需要知道任何具体的信息,请询问。

函数:

static int loadPng(const char *filename, img_format *target) {
FILE* fp;
fopen_s(&fp, filename, "rb");
if (!fp) return (ERROR);
void* tempBuffer[8] = { 0, 0, 0, 0, 0, 0, 0, 0};
fread(tempBuffer, 1, 8, fp);
if (png_sig_cmp((png_const_bytep)tempBuffer, 0, 8)) return (ERROR);
.
.
.
return 0;
}

在MSVC中,有两种主要类型的错误,

  1. 错误以C开头,说明这是一个编译错误。
  2. LNK开头的错误,表示这是一个链接错误。

当链接器找不到库或目标文件时,通常会发生LNK2019之类的错误。所以这意味着你没有将库包含到你的链接器中。

为此,转到ProjectProperties -> Linker -> Input -> Additional Dependencies并将库文件添加到其中。并且在相同的Linker选项卡中转到General,并在Additional Library Directories中添加库文件的路径(例如:"C: lib "。
您可以选择将完整的文件路径(例如:"C:Libslibrary.lib")添加到Linker选项卡中的Additional Dependencies

最新更新