通过前面一系列第三方库的编译和配置之后,接下来我们就可以对pcl1.8源码进行编译了。
1. Download
先下载pcl1.8源码.
2. CMake
解压之后,用CMake生成vs可以打开的工程文件。设置如下:
Where is the source code: C:\PCL-1.8.0
Where is build the binaries: C:\PCL-1.8.0\build
设置完后,就可以Configure了,注意kinfu功能是在gpu模块中的,大家要是用到可以勾选上。
再次点Configure时,出现如下问题:
这里原因是因为没有找到OpenNI,但是我电脑里面明明装了OpenNI2,再往上拉会发现是因为环境变量没有设置:
如果环境变量设置之后,重启电脑之后还不行,这个时候你可以自己在CMake里面设置,勾选Group和Advanced,找到OpenNI2,对上述两个变量进行设置。我的设置是:
再次点击Configure,还是会提示 gpu_kinfu_large_scale这个功能不会被build,是因为系统默认这个模块没有勾选,需要你自己勾选,然后点击Generate即可生成工程文件。
3. Build
用管理员权限打开vs2013,打开PCL.sln工程文件,生成ALL_BUILD,然后INSTALL即可完成本次的pcl源码编译。然后设置环境变量:
PCL_ROOT = C:\PCL-1.8.0
在Path里面新加 %PCL_ROOT%\bin
这样pcl源码编译就算完成了,还有大家注意在编译第三方库的时候,一定要源码编译的程序的位数是一样的,例如你要开发win32的程序,那所有的源码模式都是win32,如果想开发X64,那就都是X64.我这里就出现了小的问题,我一部分是win32,然后Boost又是X64,所以使得我最后pcl生成不成功。统一位数就可以了。如果想编译64位程序,记住在cmake选择编译器的时候一定要选择带64的编译器,不然在ALL_BUILD的时候会出现这样的错误
fatal error LNK1112: 模块计算机类型“X86”与目标计算机类型“x64”冲突