VS2019编译PCL1.11.1源码

发布时间 2023-12-06 17:40:09作者: zxc0210

最近在使用PCL的体素滤波器进行点云降采样时,遇到了 Leaf size is too small for the input dataset 的报错,出于某些原因,并不想简单的增大 Leaf size 来解决这个问题。尝试修改了PCL的源码,但是很可惜,对源码的改动并不能直接应用到我的项目中,于是只能被迫对PCL的 source code 进行重新编译。

1.下载Source Code

https://github.com/PointCloudLibrary/pcl/releases下载PCL,由于之前已经安装过一遍AllInOne版本了,省去了很多其他库的安装,这里只需要下载sourcce.zip就行。

 2.cmake

编译要用到cmake,没有的话建议先下载一个:https://cmake.org/download/

打开cmake-gui,选择源码地址和输出路径:

 点击左下角的configure,选择好自己对应的生成器和平台后,点击finish,然后会出现第一个报错:

 其实是cmake找不到Eigen导致的。之前安装的AllInOne版本中已经包含Eigen了,这里指定一下路径就好:

 再次点击configure,由于我的PCL没放在c盘,这里会报第二个错,找不到FLANN,同样指定一下这三个路径:

 再次点击configure,同样接下来的找不到Boost也是类似的方法,这里路径有点多,我们点击右上角的Add Entry添加一个条目:

这里的CMAKE_INSTALL_PREFIX就是最后生成的的PCL库的位置,建议最好不要放在c盘,避免因为权限问题导致一些不必要的麻烦;

 等待configure结束之后,点击generate,等待生成完成。然后点击open project或者build目录下的PCL.sln打开项目。

 3.VS中编译PCL

打开项目后,选择需要的版本,我这里只需要Release x64版本就只编译Release版本,选择ALL_BUILD,右键点击生成,然后要做的就是漫长的等待了。ALL_BUILD生成完成之后,还要选择INSTALL,同样右键生成一遍。

全部生成完成之后,就可以在之前设置好的路径下找到PCL了:

接下来就是如何在自己的项目中使用PCL了,这一步之前已经做过,这里就不再详细记录了。

OK,至此,对PCL的源码编译完成。