PCL使用笔记——windows10 +vs2013编译安装以及kinfu环境配置

目录

 

 

BUILD PCL

新建工程


 

BUILD PCL

源码是PCL 1.8.1,在github上的地址: https://github.com/PointCloudLibrary/pcl/releases

依赖环境是:

Boost 1.59.0
Eigen 3.2.7
FLANN 1.8.4
Qhull 2012.1
VTK 6.3.0
OpenNI 2.2.0.33 Beta

然后有的说要Qt,有的说没需求就不用。。。。我这里就不用了

里面除了OpenNI2 以外,基本都要重新cmake源码编译,编译时候注意保证vs版本一致,64位或者32位一致。

我这里做的时候发现,编译这些依赖库还挺麻烦的,总是有各种各样奇怪的问题,所以这里就用了个偷懒的方法。PCL官方给了个all in one的工具  PCL 1.8.0  All-in-one Installer,里面有vs2013的32位和64位版本,直接傻瓜式安装即可。上面所有的依赖库都被i安装上,PCL也可以直接使用,但是all build后我没有找到关于kinfu的,可能是因为还是测试代码,所以没有集成进来?所以这里我就又重新下载了PCL1.8.1的源码,重新编译了下。嗯,依赖库就用all in one里面的,(机智如我,至少不用自己再编译安装依赖库了hhhhh,亲测 all build success),all in one的话,我用的是vs2013 x64的,目前好像没找到更高的vs版本,所以如果你要用更高版本的vs,那么还是自己编译吧

cmake注意事项:

cmake时候,configure会报错,一般都是boost,eigen,flann, qhull ,vtk路径无法自动找到,所以需要手动指定,openni2如果是默认安装的话,一般还是可以自动识别到的,但是最好还是find一下。下面给出我cmake时候的注意事项:

1. 修改CMAKE_INSTALL_PREFIX 的值为PCL源码所在位置,如D:\PCL-master-1.8.1,(默认指向的是C盘 program 里面的,反正我这里不是源码位置,所以我修改了一下)

2. WITH里面勾选 BUILD_GPU, BUILD_gpu_kinfu, BUILD_gpu_kinfu_large_scale

3.Boost.因为我们这里使用的是all in one安装的库,不是自己源码编译的,所以自己编译的话请忽略此条。

Cmake好像无法自己找到boost库的位置,所以我们来手动指定,如果找到了则跳过该步骤。

这里我们只要指定Boost_INCLUDE_DIR ,your path\prebuild-pcl-x64-vs2013\PCL 1.8.0\3rdParty\Boost\include\boost-1_59,注意不是include,是include下一个路径,因为boost文件夹是默认在boost-1_59下。

然后正常情况下configure后,其它和Boost相关的路径都可以自动找到,但是这里我们使用的是all in one里面安装的boost库,路径和正常情况下的位置好像不太一样,Cmake找不到,解决方法有2种:

1)把boost-1_59/boost文件夹拷贝到boost-1_59同一级下,然后把boost-1_59删了,Boost_INCLUDE_DIR 改成your path\prebuild-pcl-x64-vs2013\PCL 1.8.0\3rdParty\Boost\include\即可,但是这样你的All in one可能就用不了了

2)或者在CMake文件夹里面XXX\cmake-3.12.0-win64-x64\share\cmake-3.12\Modules\FindBoost.cmake里面1544行,加一行代码:
      ${Boost_INCLUDE_DIR}/../../lib    

list(APPEND _boost_LIBRARY_SEARCH_DIRS_${c}
      ${Boost_INCLUDE_DIR}/lib
      ${Boost_INCLUDE_DIR}/../lib
      ${Boost_INCLUDE_DIR}/stage/lib
      )

改成
list(APPEND _boost_LIBRARY_SEARCH_DIRS_${c}
      ${Boost_INCLUDE_DIR}/lib
      ${Boost_INCLUDE_DIR}/../lib
	  ${Boost_INCLUDE_DIR}/../../lib
      ${Boost_INCLUDE_DIR}/stage/lib
      )

这样子configure后,其它lib路径都可以自动添加。

4.Eigen

EIGEN_INCLUDE_DIR:XXX\prebuild-pcl-x64-vs2013/PCL 1.8.0/3rdParty/Eigen/eigen3,注意一定要指定到eigen3

5.FLANN :

CMake was able to find my FLANN installation. By default on windows, PCL will pick the static FLANN libraries with _s suffix. Thus, the FLANN_IS_STATIC checkbox is checked by default.

FLANN

Note

If you rather want to use the shared FLANN libraries (those without the _s suffix), you need to manually edit the FLANN_LIBRARY and FLANN_LIBRARY_DEBUG variables to remove the _s suffix and do not forget to uncheckFLANN_IS_STATIC. Make sure the FLANN dlls are either in your PATH or in the same folder as your executables.

Note

In recent PCL, the FLANN_IS_STATIC checkbox no longer exists.

6.VTK

VTK

7.Qhull

QHull

新建工程

包含目录中添加:

...PCL 1.8.0\include\pcl-1.8
...PCL 1.8.0\3rdParty\Boost\include\boost-1_59
...PCL 1.8.0\3rdParty\Eigen\eigen3
...PCL 1.8.0\3rdParty\FLANN\include
...PCL 1.8.0\3rdParty\Qhull\include
...PCL 1.8.1\3rdParty\OpenNI2\Include
...PCL 1.8.0\3rdParty\VTK\include\vtk-8.1

库目录中添加:

  ...PCL1.8.0\PCL 1.8.0\lib
  ...PCL1.8.0\PCL 1.8.0\3rdParty\Boost\lib
  ...PCL1.8.0\PCL 1.8.0\3rdParty\FLANN\lib
  ...PCL 1.8.0\3rdParty\OpenNI2\Lib
  ...PCL1.8.0\PCL 1.8.0\3rdParty\Qhull\lib
  ...PCL1.8.0\PCL 1.8.0\3rdParty\VTK\lib

比include少一个eigen,因为eigen没有lib文件。

附加的依赖项中添加对应的.“lib”文件

除了上图中lib,主要将PCL和VTK的lib文件添加进来即可。

由于lib文件较多,如果不知道要使用哪些lib,或者对PCL不熟悉的话,那就将这些lib全部添加进去好了。不同PCL版本的lib名字不一样,这里给出一个快速获取lib名字的方法。

win+r调出“运行”窗口并输出cmd
输入:cd /d D:\P_pcl\PCL1.9.0\PCL 1.9.0\3rdParty\VTK\lib 回车 (填自己的路径)
输入:dir /b *.lib *>0.txt 回车 

PCL的lib获取方法同上。

打开对应的txt,直接复制粘贴到附加依赖项里面即可。

然后应该就差不多了,后续有空再更新吧。。。。。

emm。。。。example中kinfu编译出了对应的dll之类的文件,都是success的,但是就是没有exe可执行文件,,,WTF,容我看看CMake,如果有大佬知道,请告知一下

发布了44 篇原创文章 · 获赞 14 · 访问量 3万+

猜你喜欢

转载自blog.csdn.net/hehehetanchaow/article/details/89042192