在Ubuntu 16.04上编译PCL 1.7,CMake生成的Makefile中出现错误
Compiling PCL 1.7 on Ubuntu 16.04 , errors in CMake generated Makefile
我正在尝试让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中,但有一个解决方法。
-
sudo apt安装
libproj-dev
-
在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时的一个问题。但是对于这两个问题有一个替代的解决方案
- /usr/lib/cmake/vtk-62/VTKTargets.cmake
sudo更新替代方案--安装/usr/bin/vtk-vtk/usr/bin/vdk6 10
- 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
- 我将 Makefile 更改为 C++11 版本,但仍然收到列表初始值设定项错误
- 在 Windows 10 下为 VTK 生成 Makefile 时,Qt mkspecs 的路径错误
- 内核.cpp在制作 kernel.o 时显示错误和 Makefile 错误
- 从 win 7 升级到 Win 10 后,出现 Dev-C++ makefile.win 编译错误
- makefile和错误将与大型项目分开的文件编译
- cyttsp4 (linux kernel) Makefile 中的错误
- G makefile错误: *.o:没有这样的文件或目录
- 使用 makefile 生成项目时出现多个定义错误C++
- makefile 和 lex+yacc 中的错误 -> 错误:"noyywrap"未声明(在此函数中首次使用)
- makefile错误没有这样的文件或目录
- 获取错误makefile:45:条件中的语法无效.停止
- C++ 编译错误:- 使用Makefile对"main"进行多重定义
- 在makefile中使用退出命令会导致编译错误
- 在Ubuntu 16.04上编译PCL 1.7,CMake生成的Makefile中出现错误
- 比特币,MinGW,Windows 7,Makefile错误
- Makefile错误-链接器输入文件未使用
- 如何修复这个简单的Makefile错误
- Qt中新的获取链接器和Makefile错误
- Makefile错误:没有这样的文件或目录
- Makefile错误:什么都不做