/Open3D/src/Open3D/IO/FileFormat/FilePNG.cpp:37:57: error: ‘png_image’ has not been declared

环境 Ubuntu16.04

0.问题

重新编译open3d遇到问题

1
error: ‘png_image’ has not been declared

原因分析:因为安装open3d后,卸载了我的ros和pcl,重新安装pcl后

1
2
3
Remove the following packages:                                            
1)     libpng16-dev                                                            
2)     libpng16-devtools

可以看到把我的libpng16卸载了,这应该是导致png_image报错的原因

如果我们我直接安装

1
sudo apt-get install libpng16-dev
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
Reading package lists... Done
Building dependency tree      
Reading state information... Done
The following packages were automatically installed and are no longer required:
  libhdf5-mpi-dev libhdf5-openmpi-dev linux-headers-4.13.0-36
  linux-headers-4.13.0-36-generic linux-image-4.13.0-36-generic
  linux-image-extra-4.13.0-36-generic
Use 'sudo apt autoremove' to remove them.
The following additional packages will be installed:
  libpng16-16 libpng16-devtools
Recommended packages:
  libpng16-tools
The following packages will be REMOVED:
  libcairo2-dev libfontconfig1-dev libfreetype6-dev libgazebo7-dev libgdal-dev
  libgdk-pixbuf2.0-dev libgtk2.0-dev libpango1.0-dev libpcl-dev libpng12-dev
  libvtk6-dev libvtk6-qt-dev libxft-dev ros-kinetic-camera-calibration
  ros-kinetic-compressed-depth-image-transport
  ros-kinetic-compressed-image-transport ros-kinetic-cv-bridge
  ros-kinetic-depth-image-proc ros-kinetic-desktop ros-kinetic-desktop-full
  ros-kinetic-gazebo-dev ros-kinetic-gazebo-plugins ros-kinetic-gazebo-ros
  ros-kinetic-gazebo-ros-pkgs ros-kinetic-image-geometry
  ros-kinetic-image-pipeline ros-kinetic-image-proc
  ros-kinetic-image-publisher ros-kinetic-image-rotate
  ros-kinetic-image-transport-plugins ros-kinetic-image-view
  ros-kinetic-opencv3 ros-kinetic-pcl-conversions ros-kinetic-pcl-ros
  ros-kinetic-perception ros-kinetic-perception-pcl
  ros-kinetic-rqt-common-plugins ros-kinetic-rqt-image-view
  ros-kinetic-simulators ros-kinetic-stage ros-kinetic-stage-ros
  ros-kinetic-stereo-image-proc ros-kinetic-theora-image-transport
  ros-kinetic-vision-opencv ros-kinetic-viz tk-dev tk8.6-dev
The following NEW packages will be installed:
  libpng16-16 libpng16-dev libpng16-devtools
0 upgraded, 3 newly installed, 47 to remove and 184 not upgraded.
Need to get 0 B/425 kB of archives.
After this operation, 280 MB disk space will be freed.

可以看到和ros冲突了.

1.解决方案

选择源码安装的方式

下载地址
https://sourceforge.net/projects/libpng/files/libpng16/
需要翻墙,翻不了强又找不到资源的可以私信我.

我下载的版本是1.6.37

1
2
3
4
5
6
cd libpng-1.6.37
mkdir build
cd build
cmake ..
make
sudo make install

之后在编译open3d就没有问题了,结束.

参考
https://blog.csdn.net/l1216766050/article/details/82810994?utm_medium=distribute.pc_relevant.none-task-blog-title-3&spm=1001.2101.3001.4242