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

时间:2016-05-22 00:27:09

标签: c++ ubuntu makefile cmake point-cloud-library

我试图在Ubuntu 16.04上运行PCL 1.7(点云库,而不是其他pcl)。我最终希望用于C ++的东西,但是现在我只是想让这些例子工作。我使用的是Ubuntu(GNU 5.3.1)和Cmake版本3.5.2附带的默认编译器。我一直在关注PCL网站上的说明(herehere),但目前我已经停留在我使用' make'让Cmake构建它想要构建的东西之后的命令。这是我得到的错误

[ 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,但我无法在任何地方找到它,所以我进入bin并制作了一个名为vtk的vtk6副本,并且它停止给我一个警告。

我使用的其他相关版本的东西是eigen3 3.2.92,boost 1.58.0,flan 1.8.4,vtk6和libopenni2 version 2.2.0.3

同样,不确定这有多少实际上很重要,但最好是过于具体而不是太模糊的IMO。

4 个答案:

答案 0 :(得分:14)

此错误仍在16.04,但有一种解决方法。

  1. sudo apt install libproj-dev

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

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

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

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

答案 1 :(得分:3)

这解决了我的问题:

sudo apt-get install libproj-dev

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

答案 2 :(得分:2)

使用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

答案 3 :(得分:0)

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

  1. /usr/lib/cmake/vtk-6.2/VTKTargets.cmake
<块引用>

sudo update-alternatives --install /usr/bin/vtk vtk /usr/bin/vtk6 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