修订: 20201115
在兼容POSIX的系统上从源代码编译PCL
尽管本身不是依赖项,但不要忘记您还需要CMake构建系统,至少是3.5.0版本。关于使用CMake构建PCL的更多帮助可以在这里获得。
请注意,以下安装说明只适用于已经安装了make/gnu工具链的POSIX系统(例如Linux、MacOS)。有关如何在Windows中下载和编译PCL(使用过程稍有不同)的说明,请访问我们的教程页面。
目录
在兼容POSIX的系统上从源代码编译PCL
- 稳定
- 试验
- 依赖
– 强制
– 可选- 故障排除
– MacOS X
稳定性
对于不提供预编译二进制文件的系统,需要从源代码编译点云库(PCL)。以下是您需要采取的步骤: 到Github下载您选择的版本。解压tar-bzip文件如下(用正确的版本号替换1.7.2):
tar xvfj pcl-pcl-1.7.2.tar.gz
进入pcl-pcl-1.7.2(将1.7.2替换为正确的版本号)文件夹,并在其中创建一个build文件夹:
cd pcl-pcl-1.7.2 && mkdir build && cd build
使用默认选项运行CMake构建系统:
cmake ..
或者改变它们(使用cmake-curses-gui):
ccmake ..
请注意,cmake可能默认为调试构建。如果你想编译一个编译器优化的PCL版本,你可以将构建目标更改为“Release”,使用“-DCMAKE_BUILD_TYPE= release”
cmake -DCMAKE_BUILD_TYPE=Release ..
最后编译所有东西(详情可查阅compiler_optimizations):
make -j2
安装:
make -j2 install
如果你不改变PCL安装位置的变量,可使用
sudo make -j2 install
以下是所有过程,如果你想复制粘贴:
cd pcl-pcl-1.7.2 && mkdir build && cd build
cmake -DCMAKE_BUILD_TYPE=Release ..
make -j2
sudo make -j2 install
同样,有关如何在Microsoft Windows中中编译和安装PCL及其依赖项的详细教程,请访问我们的教程页面。有关开发人员的其他信息,请访问Github PCL Wiki。
实验
如果您急于尝试当前正在开发的PCL的某个特性(或者您计划开发并为PCL做出贡献),我们建议您查阅我们的源存储库,如下所示。如果您只是对浏览我们的源代码感兴趣,那么可以访问https://github.com/PointCloudLibrary/pcl。
复制存储库:
git clone https://github.com/PointCloudLibrary/pcl pcl-trunk
请注意,上述步骤(3-5)对于编译实验PCL代码几乎是相同的:
cd pcl-trunk && mkdir build && cd build
cmake -DCMAKE_BUILD_TYPE=RelWithDebInfo ..
make -j2
sudo make -j2 install
依赖
因为PCL被分割成一个代码库列表,所以依赖项列表会根据您需要编译的内容而有所不同。强制依赖项和可选依赖项之间的区别在于,强制依赖项是编译和运行特定PCL库所必需的,而可选依赖项禁用PCL库中的某些功能,但编译不需要依赖项的库的其余部分。
强制
编译及使用PCL程式库所需的程式依赖库如下:
pcl_*表示所有PCL库,这意味着特定的依赖关系是使用任何PCL的严格要求。
库 | 最小版本 | 强制性 |
---|---|---|
Boost | 1.40(不含OpenNI) 1.47(含OpenNI) | pcl_* |
Eigen | 3.0 | pcl_* |
FLANN | 1.7.1 | pcl_* |
VTK | 5.6 | pcl_visualization |
可选性
下列库为PCL提供某些额外功能,因此是可选的:
库 | 最小版本 | 强制性 |
---|---|---|
Qhull | 2011.1 | pcl_surface |
OpenNI | 1.3 | pcl_io |
CUDA | 9.2 | pcl_* |
故障排除
在某些情况下,由于安装了特定库依赖项的自定义版本,或者与我们通常开发的操作系统不同,上述指令可能会失败。这里的这一节包含到我们社区就这些案件进行的讨论的链接。请在邮件列表中发布新问题之前阅读它,同时使用我们的论坛提供的搜索功能——如果讨论相同问题的旧线程已经存在,那么启动新线程就没有意义了。