你如何构建和引用libpng

How do you build and reference libpng?

本文关键字:引用 libpng 构建 何构建      更新时间:2023-10-16

下载了源代码并将配置更改为发布库x64并点击构建。它建造得很好,并通过了一些测试。

然后我在我的项目中引用了libpng(和zlib以避免一些仲裁错误),它构建得很好,直到我尝试使用任何libpng函数。(我可以使用一些类型定义)

TLDR;每当我尝试使用任何libpng函数时,我都会收到一些随机错误

根本找不到太多关于libpng的信息,也许我应该放弃并使用更用户友好的库?

编辑:我将库目录设置为包含libpng和zlib库所在的路径。并将库名称添加到链接器输入(其他依赖项)。我相信这是在Visual Studio中引用库的标准方法

编辑:

png_const_bytep header[8]; 
FILE* fp = fopen("test.png", "rb");
fread(header, 1, 8, fp);
png_sig_cmp(*header, 0, 8); // <--- ERROR, compiles fine without

还有一些错误:

  1. C4701:使用可能未初始化的局部变量"sig_bit"(在 pngread.c 中)
  2. C2220:警告被视为错误 - 未生成"可执行文件"(在 pngread.c 中)
  3. LNK1257:代码生成失败

请注意,这些都不是我代码的一部分,而是libpng的一部分

同样的问题在这里。不得不在关闭"将警告视为错误"的情况下重建 libpng。(即使 libpng 是一个 lib,我的应用程序正在执行链接时代码生成,因此以某种方式从库源代码中生成错误)。

将 libpng 升级到最新版本(1.2.52、1.5.18 或 1.6.9)。 "sig_bit"的问题已修复。