3

我有一些使用 boost 的 GIL 图像库的 C++ 代码,并且想使用boost::gil::png_write_viewfrom编写文件boost/gil/extension/io/png_io.hpp。该标头本身包括png.h,并且当然会导致链接依赖。

在 Debian 上,它可以很好地编译和链接。如果它确实抱怨缺少任何东西,那么必要的头文件和库将通过aptitude install libpng-dev.

在 Windows(XP64 上的 VisualStudio 2008)上,我不得不面对这样的想法,即我必须自己从源代码(以及它的 zlib 依赖项)构建 libpng。如果那里已经有明显的包装,我看不到它。如果任何地方都有这样有用的资源,谁能启发我?

4

1 回答 1

4

Libpng 自己的打包本身似乎为 vc6 和 VC7.1 (VS2003) 提供项目文件。最近的版本还附带 VC10 项目文件。但 VC8(VS2005) 或 VC9(VS2008) 没有。但是,这里有一些说明(我还没有尝试过),其中描述了在通过转换向导运行 7.1 项目文件后为 2008 构建的内容。

我最初确实尝试了libpng 的 GnuWin32 构建,但是(除了只有 32 位之外)当从 VS2008 的 CRT 传递一个 FILE* 时,它在对 fwrite 的 libpng 调用中崩溃了。libpng 自己的文档对此以及混合不同版本的 MSVC 的危险有话要说,但他们建议的工作区只与直接 libpng 用户相关(我通过 boost GIL 使用它)。

更新:转换后的项目文件确实工作得很好(可能是一些明显的小修正)。到目前为止,工作的最大部分是创建 64 位版本。原始和转换后的项目文件不包含任何此类配置,虽然 Visual Studio 将尝试创建它们,但有相当多的配置对话框编辑以获得一致的文件夹/文件名等。

于 2011-12-29T17:02:57.680 回答