VS编译PCL1.8.0

  • Post author:
  • Post category:其他



参考1



参考2


提醒:

1、编译过程请联网!VS在编译VTK时需要自动下载一些文件,否则会编译失败!

2、第三方库最好都安装在默认目录。(也就是在后面cmake中设置CMAKE_INSTALL_PREFIX的值时,用默认目录)

1、准备

工具:

vs2013(

注:若要使用kinfu请使用vs2010

,且到

pcl官网

下载对应的第三方库)

cmake3.5.0

第三方库:


boost_1.60.0



不想自己编译的话这里有别人编译好的,直接安装即可


eigen3.2.8



qhull_2015.2



VTK_7.0.0



flann_1.8.4


另外还可以根据需要下载安装microsoft mpi,在编译boost时,编译该功能。。。不需要就算啦。。。


也可以点这里下载上面的库,我打包放在了百度云盘

注:


友情链接


这里写图片描述


参考这里

2、开始

2.1编译boost

若需要mpi则首先下载安装它,然后到boost_1_60_0\tools\build\src\tools\mpi.jam中修改下面几行:

249-251 line

local microsoft_mpi_sdk_path = "C:\\Program Files (x86)\\Microsoft SDKs\\MPI" ;
local microsoft_mpi_path = "C:\\Program Files\\Microsoft MPI" ;
if [ GLOB $(microsoft_mpi_sdk_path)\\Include : mpi.h ]

260-262 line

options = <include>$(microsoft_mpi_sdk_path)/Include
          <address-model>64:<library-path>$(microsoft_mpi_sdk_path)/Lib/x64
          <library-path>$(microsoft_mpi_sdk_path)/Lib/x86

268 line

.mpirun = "\"$(microsoft_mpi_path)\\Bin\\mpiexec.exe"\" ;

然后以管理员身份运行VS自带的cmd(“VS2013 x86 本机工具命令提示”),进入boost文件夹,运行bootstrap.bat,运行结束后会生成project-config.jam,打开并在第四行加上:using mpi ;(注意“;”前面有一个空格!) 接下来还是用cmd进入boost文件夹,运行如下命令编译boost:

Win32:
b2.exe toolset=msvc-12.0 address-model=32 --build-dir=build\x86 install --prefix="C:\Program Files (x86)\Boost" -j8
X64:
b2.exe toolset=msvc-12.0 address-model=64 --build-dir=build\x64 install --prefix="C:\Program Files\Boost" -j8

其中msvc-11.0代表vs2012,如果是12.0是vs2013,14.0是vs2015。后面的C:\Program Files\Boost是boost的安装文件夹。

然后等着就好了,时间有点久,耐心等。完成后在环境变量中建立BOOST_ROOT变量,值为boost文件夹安装地址C:\Program Files\Boost.

2.2编译eigen

使用cmake,分别设置eigen的source和build路径(source路径其实就是含有CMakeLists.txt的文件夹,其实就是source的根目录,我的路径是E:\pcl\Eigen),如build不存在,点击Configure会提示新建build文件夹,选择vs11-2012编译器,这里注意Configure时有CMAKE_INSTALL_PREFIX这个选项,默认为C:\Program Files\Eigen.这里的路径即为该软件最后的安装路径(也是环境变量中要设置的EIGEN_ROOT的路径,可设置为你想要的其它路径,后边的FLANN,QHULL,VTK也是一样道理).然后Generate。

之后**以管理员身份运行**VS2012(否则install时会失败),打开bulid文件夹下的eigen.sln工程,待加加完文件后,生成ALL_BUILD(Debug和 Release均要生成),完成后生成INSTALL(Debug and Release)。可以看到eigen安装路径中出现include文件夹。最后在环境变量中建立EIGEN_ROOT变量,值为eigen的安装路径。

2.3编译qhull

使用cmake,分别设置qhull的source和build路径,如build不存在,点击Configure会提示新建build文件夹,选择vs11-2013-win64编译器.注意根据需要修改CMAKE_INSTALL_PREFIX,然后添加一个entry:

Name: CMAKE_DEBUG_POSTFIX

Type: STRING

Value: -d

修改完后再次点Configure,然后Generate。以管理员身份运行VS2013并打开qhull.sln工程文件,待加载完文件后,完成后生成ALL_BUILD(debug和release),然后生成INSTALL(Debugand Release)。完成后可以看到qhull安装路径中出现include和lib文件夹。最后在环境变量中建立QHULL_ROOT变量,值为qhull安装地址。

2.4编译VTK

使用cmake,分别设置VTK的source和build路径,如build不存在,点击Configure会提示新建build文件夹,选择vs12-2013-win64编译器.注意根据需要修改CMAKE_INSTALL_PREFIX选项,然后添加一个entry:

Name: CMAKE_DEBUG_POSTFIX

Type: STRING

Value: -gd

修改完后再次点Configure,然后Generate。以管理员身份运行VS2013并打开VTK.sln工程文件,待加载完文件后,生成ALL_BUILD(debug和release)(时间有点久,很久,耐心等待),完成后生成install(debug和release)。完成后可以看到VTK文件夹中出现include和lib文件夹。最后在环境变量中建立VTK_ROOT,为VTK安装路径.

2.5编译flann

使用cmake,分别设置Flann的source和build路径(如C:\flann,C:\flann\build),选择vs12-2013编译器.注意根据需要修改CMAKE_INSTALL_PREFIX,然后去掉BULID_MATLAB_BINDINGS和BULID_PYTHON_BINDINGS的勾选,不bulid它们

这里写图片描述

然后添加一个entry:

Name: CMAKE_DEBUG_POSTFIX

Type: STRING

Value: -gd

修改完后再次点Configure,然后Generate。在C:\flann\src\cpp\flann\util(源码)中找到serialization.h文件 在92行BASIC_TYPE_SERIALIZER(bool)之后加入以下代码:

#ifdef _MSC_VER

BASIC_TYPE_SERIALIZER( unsigned __int64 );//注意此处__int64是两个下划线连一起

#endif

修改完后以管理员身份运行VS2013并打开flann.sln工程文件,待加载完文件后,(debug和release)生成all_build,完成后生成install(Debugand Release)。完成后可以看到flann安装路径下出现include和lib文件夹。最后在环境变量中建立FLANN_ROOT变量,值为flann安装路径。

2.6最后配置PCL

使用cmake选择source和build文件夹,such as:

Where is the source code: C:\PCL-master\source

Where is build the binaries: C:\PCL-master\build

点击Configure(此时最好把Grouped勾选,
这里写图片描述
),选择vs12-2013-win64编译器,正常情况下不会出现什么问题:

这里写图片描述

展开上图中bulid,可以选择我们要编译的模块,有些模块不能勾选,否则生成会出错(原因不知道,哪位知道,还请告知,比如all-in-one-install)

其中如果要使用kinfu需要勾选GPU,以及CUDA,且最好安装最新版的

CUDA

,安装CUDA过程中不要用默认的精简安装,选择自定义,全选后继续安装,安装完毕重启下电脑。

还要勾选WITH下面的openni:

这里写图片描述

这里写图片描述

有时在configure后会出现找不到Boost的情况,我的解决办法的手动添加,下面是我的Boost下拉栏中的截图,可以作为参考,配置那些没有找到的库:

这里写图片描述

如果VTK没有找到,可手动添加改如下:

这里写图片描述

注意根据需要修改CMAKE_INSTALL_PREFIX(我的路径为C:\ProgramFiles\PCL),再次点击Configure,然后generate生成.以管理员身份运行VS2013并打开PCL.sln,生成ALL_BUILD(Debug和Release模式,各自得半小时左右).

随后生成INSTALL(Debug and Release)将PCL-1.8成功安装。

最后在环境变量中建立PCL_ROOT变量,值为PCL安装路径。



版权声明:本文为yzheately原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。