你如何构建和引用libpng?

时间:2013-11-09 14:09:53

标签: c++ windows visual-studio libpng

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

然后我在我的项目中引用了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.   
  3. C2220:警告被视为错误 - 未生成“可执行”文件(在pngread.c中)
  4.   
  5. LNK1257:代码生成失败
  6.   

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

2 个答案:

答案 0 :(得分:0)

完全相同的问题在这里。不得不重置libpng,并将“将警告视为错误”关闭。 (即使libpng是一个lib,我的应用程序正在执行链接时代码生成,因此以某种方式产生了库源代码的错误。)

答案 1 :(得分:0)

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