Win7+VS2010编译64位PCL 1.8和Kinfu

Win7+VS2010编译64位PCL 1.8和Kinfu

##1.首先下载源码和依赖包 windows 依赖包下载列表 Alt text
如果你需要PCL 1.6那么直接下载这个ALL-IN-ONE包就行了。但是这个1.6是不包含kinfu的哦。

我们将单独编译PCL1.8

下载下面的全部依赖包,如果你需要编译PLC源码中的app,那么它将依赖于QVTK,所以你需要下载5.8.0 with Qt support强烈建议大家把这些库都安装在C盘默认位置

接下来我们从PCL的github上面下载最新的源码,下载后解压缩。推荐大家放到C盘根目录下面。如果你需要编译kinfu,那么源码中一定要包含gpu这个文件夹

##2.使用CMAKE创建工程 Alt text
打开Cmake之后,我们首先浏览源代码的路径,如1所示,然后设置目标路径,如2所示。 然后点击configure来配置,此时我们可以选择编译器的版本。针对VS2010和win x64,我们选择如下选项。 Alt text

第一次点击配置之后,改动的地方会是红色的,而且cmake自己会去找需要的库的地址,因此之前我们建议大家把依赖库全部安装在C盘。 Alt text

这里有很多可以设置的地方,如果一切正常,是不会报错的,红色的警告大家可以忽略。 图中注意几个地方,其中1的位置,是选择有哪些模块将要被编译。如果要编译kinfu请勾选gpu选项,如果要编译in-hand-scanner请勾选app,其它也是同理的。勾选之后我们需要再次点击configure,然后我们可以针对之前勾选的选项,进行进一步的设置。

Alt text

另外注意一下23,其中2是QT的位置,如果你有多个版本的QT,可以手动改变一下其中QT_QMAKE_EXECUTABLE的位置,也就是qmake.exe,那么其他的会自动在下一次configure的时候修改为该版本QT的地址。

在更改设置之后,点击configure来重新进行配置,一切正常没有错误后,点击Generate来生成工程文件。

##3.使用VS2010来进行编译 如果你能正确的生成工程文件,那么VS2010中的依赖库,头文件包括linker就是已经设置好的,不需要手工添加了。

打开我们之前设置的目标目录。下面有一个solutions文件,打开之后就可以看到所有待编译的工程。我们可以单独编译某一个,也可以在ALL-BUILD上面点击编译来编译全部的工程。

如果你只需要其中某些工程,也可以单独编译,它们所依赖的工程会自动编译的。

##4.爬坑指南

1.有时候会出现boost中chrono找不到,link错误:未解析的外部变量。 在cmake文件夹里面找到pcl_find_boost.cmake

error LNK2019: external symbol "public: static class boost::chrono::time_point<class boost::chrono::....

# Required boost modules
.....
set(BOOST_REQUIRED_MODULES system filesystem thread date_time iostreams)
find_package(Boost 1.40.0 REQUIRED COMPONENTS ${BOOST_REQUIRED_MODULES})
endif()

修改为

# Required boost modules
.....
set(BOOST_REQUIRED_MODULES system filesystem thread date_time iostreams)
find_package(Boost 1.40.0 REQUIRED COMPONENTS ${BOOST_REQUIRED_MODULES})
endif()

也就是在else后面的set语句里面也添加一下chrono即可。类似的如果有存在未解析的外部变量,那么可以定位一下它所属的库,然后去cmake文件一探究竟。

2.编译cuda的时候如果出现不支持compute_52,在cuda选项里面把5.2取消即可 Alt text

3.有时候勾选了app这个目录的时候,会出现QVTK的debug和release库找不到。那么在3中进行手动设置。如果是直接安装了vtk,那么在lib文件夹下面会有两个文件QVTK.libQVTK-gd(debug版).lib。如果你是自己编译的vtk,如果编译了install,那么位置同上。否则在/build/bin/debug/build/bin/release**下各有一个,此处build是我编译时指定的生成目录,你们可能是另外的名字。

参考链接