As far as I know, There are some issues related to png_io.h.
I have change the definition of PCL_DEPRECATED in png_io.h file with this definition,and every thing becomes OK.
template <typename T>
PCL_DEPRECATED (void savePNGFile (const std::string& file_name, const pcl::PointCloud<T>& cloud),
"pcl::io::savePNGFile<typename T> (file_name, cloud) is deprecated, please use a new generic "
"function pcl::io::savePNGFile (file_name, cloud, field_name) with \"rgb\" as the field name."
);
look at this link [https://github.com/PointCloudLibrary/pcl/pull/300]