在Ubuntu 16.04上编译PCL 1.7,CMake生成的Makefile中出现错误

Compiling PCL 1.7 on Ubuntu 16.04 , errors in CMake generated Makefile

本文关键字:Makefile 错误 CMake Ubuntu 编译 PCL      更新时间:2023-10-16

我正在尝试让PCL 1.7(点云库,而不是其他PCL)在Ubuntu 16.04上运行。我最终希望用于C++的东西,但现在我只是想让这些例子发挥作用。我使用的是Ubuntu(GNU5.3.1)和Cmake 3.5.2版本附带的默认编译器。我一直在遵循PCL网站上的指示(这里和这里),但在让Cmake构建它想要构建的东西后,我目前正处于使用"make"命令的阶段。这是我得到的错误

[ 50%] Building CXX object CMakeFiles/pcd_write.dir/pcd_write.cpp.o
<command-line>:0:15: warning: missing whitespace after the macro name
make[2]: *** No rule to make target '/usr/lib/x86_64-linux-gnu/libproj.so', needed by 'pcd_write'.  Stop.
CMakeFiles/Makefile2:67: recipe for target 'CMakeFiles/pcd_write.dir/all' failed
make[1]: *** [CMakeFiles/pcd_write.dir/all] Error 2
Makefile:83: recipe for target 'all' failed
make: *** [all] Error 2

当我在建造东西时,Cmake也会给我警告,这些都在这里。它们不会阻止它的运行,但它们可能是相关的。

-- Found OpenNI2: /usr/lib/libOpenNI2.so  
** WARNING ** io features related to pcap will be disabled
** WARNING ** io features related to png will be disabled
-- The imported target "vtkRenderingPythonTkWidgets" references the file
"/usr/lib/x86_64-linux-gnu/libvtkRenderingPythonTkWidgets.so"
but this file does not exist.  Possible reasons include:
* The file was deleted, renamed, or moved to another location.
* An install or uninstall procedure did not complete successfully.
* The installation package was faulty and contained
" /usr/lib/cmake/vtk-6.2/VTKTargets.cmake"
but not all the files it references.

此外,如果这是相关的,我早些时候做了一件可能很愚蠢的事情,当时它给了我关于VTK的类似警告。它告诉我/user/bin/vtk被重命名了什么的,事实确实如此。这个版本的VTK称自己为vtk6。我试图在makefile中查找并更改它,这样Cmake就知道要查找vtk6,但我在任何地方都找不到它,所以我进入垃圾箱,复制了一个名为vtk的vtk6副本,它不再给我警告。

我使用的其他相关版本是本征3 3.2.92、boost 1.58.0、flan 1.8.4、vtk6和libopenni2版本2.2.0.3

同样,不确定其中有多重要,但最好过于具体,而不是过于模糊

这个错误仍然存在于16.04中,但有一个解决方法。

  1. sudo apt安装libproj-dev

  2. 在CMakeLists.txt文件中添加以下行:
    list(REMOVE_ITEM PCL_LIBRARIES "vtkproj4")

第一个提供了必要的libproj.so,第二个修复了链接到不存在(也是不必要的)libvtkproj4时的错误。

关于不存在的引用文件的其他错误似乎是无害的(或者至少我的项目编译了,尽管有同样的错误)。

有关详细信息,请参阅:
https://bugs.launchpad.net/ubuntu/+source/pcl/+bug/1573174
https://bugs.launchpad.net/ubuntu/+源/vtk6/+bug/1573234

这为我解决了问题:

sudo apt-get install libproj-dev

来源:https://github.com/PointCloudLibrary/pcl/issues/1828

vtk6 的安装似乎有问题

此处描述:https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=819741

快速而肮脏的解决方案:在请求的目录中创建一个符号链接libproj.so:

sudo ln -s  /usr/lib/x86_64-linux-gnu/libproj.so.<your-version> /usr/lib/x86_64-linux-gnu/libproj.so

这是Ubuntu在安装PCL时的一个问题。但是对于这两个问题有一个替代的解决方案

  1. /usr/lib/cmake/vtk-62/VTKTargets.cmake

sudo更新替代方案--安装/usr/bin/vtk-vtk/usr/bin/vdk6 10

  1. libvtkRenderingPythonTkWidgets.so

sudo ln-s//usr/lib/python2.7/dist-packages/vtk/libvtkRenderingPythonTkWidgets.x86_64-linux-gnu.so/usr/lib/x86_64-linux-gnu/libvtkRenderingPythonTkWidgets.so