你如何构建和引用libpng
How do you build and reference libpng?
下载了源代码并将配置更改为发布库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
还有一些错误:
- C4701:使用可能未初始化的局部变量"sig_bit"(在 pngread.c 中)
- C2220:警告被视为错误 - 未生成"可执行文件"(在 pngread.c 中)
- LNK1257:代码生成失败
请注意,这些都不是我代码的一部分,而是libpng的一部分
同样的问题在这里。不得不在关闭"将警告视为错误"的情况下重建 libpng。(即使 libpng 是一个 lib,我的应用程序正在执行链接时代码生成,因此以某种方式从库源代码中生成错误)。
将 libpng 升级到最新版本(1.2.52、1.5.18 或 1.6.9)。 "sig_bit"的问题已修复。
相关文章:
- 将对象数组的引用传递给函数
- 什么时候在C++中返回常量引用是个好主意
- 我想将一个对T类型的非常量左值引用绑定到一个T类型的临时值
- 何时在引用或唯一指针上使用移动语义
- 如何在c++中使用引用实现类似python的行为
- 编译C++时未定义的引用
- Ctypes wstring通过引用传递
- c++r值引用应用于函数指针
- 理解c++中的引用
- C++取消引用指针.为什么会发生变化
- 如何修复此错误:未定义对"距离(浮点数,浮点数,浮点数,浮点数,浮点数)"的引用
- 我的项目不会像"undefined reference to `grpc::g_core_codegen_interface'"那样使用未定义的引用错误进行编译
- C++Boost Asio Pool线程,带有lambda函数和传递引用变量
- 强制转换为引用类型
- 引用一个已擦除类型(void*)的指针
- 向量元素的引用地址与它所指向的向量元素的地址不同.为什么
- 具有默认值的引用获取函数
- 如何使用基类指针引用派生类成员
- 使用取消引用的指针的多态性会产生意外的结果.为什么?
- 你如何构建和引用libpng