4

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

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

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 的一部分

4

2 回答 2

0

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

于 2014-02-15T03:46:22.950 回答
0

同样的问题在这里。必须通过关闭“将警告视为错误”来重建 libpng。(尽管 libpng 是一个库,但我的应用程序正在执行链接时代码生成,因此以某种方式从库源代码中生成了错误)。

于 2013-11-19T00:48:18.043 回答