1.当前环境
Ububtu18.04+melodic+pcl1.12+opencv3.2
2.问题描述
编译gpd_ros时出现fatal error: pcl_conversions/pcl_conversions.h 没有那个文件或目录
3.解决方法
sudo apt-get install ros-melodic-pcl-conversions
由于我安装的pcl1.12属于最新的版本了,而gpd_ros功能包所使用的是pcl1.9,其中报错的pcl_conversion.h文件更是只有pcl1.7才有的,因此按照上述代码即可解决问题,但是我在安装过程中出现了以下问题:
下列软件包有未满足的依赖关系:
ros-melodic-pcl-conversions : 依赖: libpcl-dev 但是它将不会被安装
E: 无法修正错误,因为您要求某些软件包保持现状,就是它们破坏了软件包间的依赖关系。
出现此问题的原因可能是当初安装pcl库的时候的vtk7.0相对于gpd_ros所使用的vtk依赖过高,因此出现这个问题。我所安装pcl1.12的教程可以看此处?。
为了解决依赖问题,我针对终端所提出的无法安装的依赖,逐个手动安装:
sudo apt-get install libvtk6-jni
sudo apt-get install libvtk6-java
sudo apt-get install libvtk6-jni
sudo apt-get install libvtk6-dev
sudo apt-get install libvtk6-qt-dev
sudo apt-get install libpcl-dev
sudo apt-get install ros-melodic-pcl-conversions
最终成功安装pcl_conversions.h?
然而在catkin_make进行编译gpd_ros时,又出现了?问题:
CMake Error at /usr/lib/cmake/vtk-6.3/vtkModuleAPI.cmake:120 (message):
Requested modules not available:
vtkRenderingOpenGL2
Call Stack (most recent call first):
/usr/lib/cmake/vtk-6.3/VTKConfig.cmake:80 (vtk_module_config)
/usr/share/pcl-1.12/PCLConfig.cmake:266 (find_package)
/usr/share/pcl-1.12/PCLConfig.cmake:315 (find_VTK)
/usr/share/pcl-1.12/PCLConfig.cmake:526 (find_external_library)
gpd_ros/CMakeLists.txt:10 (find_package)
-- Configuring incomplete, errors occurred!
See also "/home/xxt/catkin_ws/build/CMakeFiles/CMakeOutput.log".
See also "/home/xxt/catkin_ws/build/CMakeFiles/CMakeError.log".
Makefile:7404: recipe for target 'cmake_check_build_system' failed
make: *** [cmake_check_build_system] Error 1
Invoking "make cmake_check_build_system" failed
查看资料后发现,可能因为vtk6.3版本为 vtkRenderingOpenGL,而之前下载的vtk7.1所使用的为 vtkRenderingOpenGL2。因此需要将其改过来,打开文件/usr/share/pcl-1.12/PCLConfig.cmake
首先修改权限,将其变为可读写
sudo chmod 666 PCLConfig.cmake
然后通过ctrl+F定位vtkRenderingOpenGL所在位置,并将vtkRenderingOpenGL2改为vtkRenderingOpenGL即可。
最后重新进行catkin_make编译gpd_ros,编译成功!
再次感谢 此博客的启发!
pcl_conversions文件缺失问题_Night___Raid的博客-CSDN博客_pcl_conversions
|