(cmake编译之前一直有点迷,通过PCL的源码编译多了点经验,记录下。)
-
cmake编译出来的include、lib、bin(在build文件夹中),直接复制到源码中替代源码中的三个文件夹。(所以在cmake编译时,注意“cmake”中CMAKE_INCLUDE_PREFIX选项,默认设置到C盘,可以改到build或源码文件家中,里面编译出的文件备用参考编译1,步骤19。或者直接存到一个新建文件夹xxx_prefix备用,参考编译2)
-
关于环境变量配置
将新安装的库bin文件夹加入到“path”中
还有一些也可以直接加到“系统变量”里,方便cmake查找。比如:
BOOST_INCLUDEDIR D:\softWare\PCL\PCL_1.12.1\3rdParty\Boost\include\boost-1_78
BOOST_LIBRARYDIR D:\softWare\PCL\PCL_1.12.1\3rdParty\Boost\lib
BOOST_ROOT D:\softWare\PCL\PCL_1.12.1\3rdParty\Boost -
PCL编译
编译中参考教程:
主要参考教程
提供了cmake过程中很多路径参考。
次要教程
(学到了CUDA在kinfu编译中可能重要,所以重装了CUDA)
编译中遇到的问在主要参考教程中解决。
(1) 编译PCL源码时,很多第三方库在安装PCL.exe时已经下载,直接用上就好(将相关bin文件加到path中。添加系统变量,步骤2就是在教程中学到的。)
(2)cmake编译时,出现cuda toolset报错,重装CUDA
(3)检查cmake中关联库的的路径设置,一般在环境变量path和系统路径中设置好后,cmake可以直接找到。
(4)最后一个坑,在vs中编译源码时,出现报错PCL “boost/mpl/assert.hpp”: No such file or directory pcl_cuda_segmentation。
因为项目有很多子项目,找到一个系项目,添加附加包含目录,生成通过。但是为"ALL_BUILD"添加上,还是通不过。解决办法,找到报错的子项目(切换报错模式就能看到),为报错的子项目添加缺少的包含目录(PCL中是boost报错)。 -
代码运行
(代码报错google更靠谱)
qt再添加库目录时,只能一个一个加(太操x了),可以利用简写格式_*。