【问题标题】:How to build and link libpng for Windows如何为 Windows 构建和链接 libpng
【发布时间】:2016-09-13 22:12:34
【问题描述】:

我正在尝试构建和链接 libpng,以便我可以将它与 Eclipse、C++ 和 Windows 8.1(64 位)一起使用。

我正在使用带有选项的 GCC C++ 编译器:

-I"C:\zlib-1.2.8" -I"C:\lpng1625" -I"C:\CImg\CImg-1.7.5" -O0 -g3 -Wall -c -fmessage-length= 0 -Dcimg_use_png -lpng16 -v

以及带有选项的 MinGW C++ 链接器:

-L"C:\lpng1625" -L"C:\zlib-1.2.8" 并且库设置为:gdi32、z 和 png1625。

我也尝试过 png16、png15 和 png15 的变体。

我的错误信息是:“找不到 -lpng1625”

我需要构建 libpng 吗?如果是这样,我该怎么做?

【问题讨论】:

  • 只是-lpng
  • 好的。现在我得到“找不到-lpng”。我想我需要构建它,但不确定如何创建 makefile(以及如何使用 makefile)。
  • 我将尝试使用 win-builds。
  • 使用 win-builds 和他们的 dll,我得到一个错误: g++ "-LC:\\zlib-1.2.8" "-LC:\\win-builds\\bin" -o TileMap .exe "src\\TileMap.o" -lgdi32 -lz -lpng C:\win-builds\bin/libpng.dll:文件无法识别:文件格式无法识别
  • 也许我应该使用 c:\win-builds\lib64 代替?这样我得到了 1000 多个错误,例如:描述资源路径位置类型未定义引用 `__cxa_allocate_exception' TileMap 第 10097 行,外部位置:C:\CImg\CImg-1.7.5\CImg.h C/C++ 问题

标签: c++ libpng


【解决方案1】:

我使用 Visual Studio 15 和 NuGet 包管理器让它工作。

NuGet 让安装 libpng 变得非常容易(并自动安装了它的依赖项,包括 zlib)。接下来,我通过在项目属性和“包含目录”下添加其目录来包含 Cimg.h。最后我必须安装 GraphicsMagick 以便 CImg 可以保存 PNG 文件。我通过下载 Windows 二进制文件来做到这一点。

【讨论】:

    猜你喜欢
    • 2011-01-10
    • 2020-02-23
    • 2020-09-21
    • 2013-11-21
    • 2011-01-24
    • 2020-04-20
    • 2012-08-30
    • 2015-09-22
    相关资源
    最近更新 更多