Macos LibPNG+;Boost::GIL:png\u infopp\u未找到NULL

Macos LibPNG+;Boost::GIL:png\u infopp\u未找到NULL,macos,build,libpng,boost-gil,Macos,Build,Libpng,Boost Gil,在尝试使用Boost::GIL PNG IO支持编译文件时,我总是遇到此错误: (我正在运行Mac OS X Leopard和Boost 1.42,LibPNG 1.4) /usr/local/include/boost/gil/extension/io/png\u io\u private.hpp:在成员函数“void boost::gil::detail::png\u reader::init()”中: /usr/local/include/boost/gil/extension/io/pn

在尝试使用Boost::GIL PNG IO支持编译文件时,我总是遇到此错误:

(我正在运行Mac OS X Leopard和Boost 1.42,LibPNG 1.4)

/usr/local/include/boost/gil/extension/io/png\u io\u private.hpp:在成员函数“void boost::gil::detail::png\u reader::init()”中:
/usr/local/include/boost/gil/extension/io/png\u io\u private.hpp:155:错误:“png\u infopp\u NULL”未在此范围内声明
/usr/local/include/boost/gil/extension/io/png\u io\u private.hpp:160:错误:“png\u infopp\u NULL”未在此范围内声明
/usr/local/include/boost/gil/extension/io/png_io_private.hpp:在析构函数“boost::gil::detail::png_reader::~png_reader()”中:
/usr/local/include/boost/gil/extension/io/png\u io\u private.hpp:174:错误:“png\u infopp\u NULL”未在此范围内声明
/usr/local/include/boost/gil/extension/io/png\u io\u private.hpp:在成员函数“void boost::gil::detail::png\u reader::apply(const View&)”中:
/usr/local/include/boost/gil/extension/io/png_io_private.hpp:186:错误:“int_p_NULL”未在此范围内声明
/usr/local/include/boost/gil/extension/io/png\u io\u private.hpp:在成员函数“void boost::gil::detail::png\u reader\u color\u convert::apply(const View&)”中:
/usr/local/include/boost/gil/extension/io/png_io_private.hpp:228:错误:“int_p_NULL”未在此范围内声明
/usr/local/include/boost/gil/extension/io/png_io_private.hpp:在成员函数“void boost::gil::detail::png_writer::init()”中:
/usr/local/include/boost/gil/extension/io/png\u io\u private.hpp:317:错误:“png\u infopp\u NULL”未在此范围内声明

最初我使用libpng 1.4。我切换到1.2版,所有问题都消失了。

libpng 1.4删除了
png\u infopp\u NULL
int\u p\u NULL
的定义。所以加上

#define png_infopp_NULL (png_infopp)NULL
#define int_p_NULL (int*)NULL

在您的代码中添加GIL标题之前。

+1谢谢。我已经考虑过这一点,但为了避免其他问题(如果有的话),我又回到了1.2。
#define png_infopp_NULL (png_infopp)NULL
#define int_p_NULL (int*)NULL