本文参考:
(1) (gua_MASS大神的博文);
(2) (官方库指导)。
首先下载好voxelsdk(下载直达)。
一、准备好所有前置条件:
准备好所有前置条件,即VoxelSDK所依赖的第三方库和软件的安装,编译需要注意,64位与32位要对应,即若需要的是64位的工程,则第三方依赖库也需要是64位的,反之亦然,我编译的是64位的,因此以下所提的软件与库都是64位(OpenCV是我工程所需,因此这里顺便安装了,可忽略此项):
名称 | 版本要求 | 备注 | 说明 | 下载 |
---|---|---|---|---|
Vistual Studio | 2013及以上 | 必选 | VoxelSDK含有C++11新特性,2013之前的版本对于C++11的支持可能不够 | \ |
CMake | 2.8.13及以上 | 必选 | 用于编译生成VS解决方案 | 点击直达 |
PCL | 1.7.2及以上 | 必选 | 用于VoxelSDK中APP模块测试程序点云获取和显示。安装推荐使用别人已经编译打包好的 All_in_One 形式安装包安装,PCL源码编译有点繁琐,不推荐从源码编译 | 点击直达 |
Qt | 5.4及以上 | 必选 | 主要针对于VoxelSDK中VoxelPCL模块编译需要 | 点击直达 |
CySuiteUSB | 3.4.7及以上 | 必选 | 深度相机通过USB进行数据传输,该库提供了对USB设备的相关操作接口 | 点击直达 |
OpenCV | 3.1.0 | 可选 | 图像处理、显示,与编译无关 | 点击直达 |
以下是我编译时所用的相关软件及库文件版本:
一些错误及注意事项:
(1)下图摘自官方库编译指导说明
(2)VoxelSDK主要有六个模块,其中Voxel与TI3DToF是我们主要使用到的两个模块,如果不需要其他模块,可在voxelsdk_master/CMakeLists.txt文件中注释掉相关项,如下图所示(注释使用‘#’号,在这里我保留所有项):
(3)这里需要注意的是,安装PCL点云库的时候会有个添加环境变量的选项,建议勾上添加,方便后面环境变量的配置(如下图)。
此外,安装快结束的时候会有一个OpenNI2的安装程序弹出,这时候安装路径建议选择PCL安装目录下 3rdParty目录下的OpenNI2目录,如 D:\PCL 1.8.0\3rdParty\OpenNI2。
(4)CySuiteUSB 安装完成后需在安装目录下(如D:\Libraries\Cypress\Cypress Suite USB 3.4.7\CyAPI)中的 inc 与 lib 文件夹中分别讲 CyAPI 头文件与库文件复制出来,在 VoxelSDK 下的 Voxel 文件夹中创建一个名为 CyAPI 的文件夹,将头文件及库文件复制到 CyAPI 文件夹中(如 E:\Libraries\voxelsdk-master\Voxel\CyAPI)。
>>CMake软件相关使用说明:
二、环境变量的配置:
安装完所需要的软件和库之后,就需要我们配置环境变量了,这一步尤为重要,若忽略了在使用CMake生成解决方案时会出现找不到库的错误,因此需要确保环境变量正确配置。以下就是软件和库安装后需要配置的相关的环境变量(注意路径)。
① 到系统界面,点击更改设置:
② 弹出的对话框中选择高级,右下角点击环境变量
③ 在系统变量的Path中点击编辑添加需要配置的环境变量
进入配置正题:
(1) CMake,在Path中添加CMake安装目录下的bin目录,如 D:\Program Files\CMake\bin;
(2) Qt,添加Qt安装目录下的bin目录,如 D:\Qt\Qt5.4.0\5.4\msvc2013_64\bin;
(3) PCL点云库,如果在安装 PCL 点云库的时候选择了添加环境变量,那么系统变量下将会多出三个 OpenNI 的变量以及 Path 变量中D:\PCL 1.8.0\bin,如下:
然后在系统变量创建一个变量名为 PCL_ROOT,值为 PCL 安装路径,如下:
然后在 Path 变量中添加下列值(将 D:\PCL 1.8.0\bin 更改为 %PCL_ROOT%\bin)(修正:VKT改为VTK):
(5) 最后再确认一下所有变量都已配置好:
至此,编译构建源码的所有环境都已经准备好了,接下来就可以用CMake来编译生成.sln工程了。
三、构建并编译:
因为构建不需要Python,因此将 E:\Libraries\voxelsdk-master\Voxel 文件夹下的CMakeLists.txt文件中SWIG注释掉,如下:
以下是CMake构建的截图:
Config成功后,点击Generating生成.sln解决方案:
点击Open Project即可打开生成的工程,打开工程后右键AllBuild生成即可,在编译结束后还需要添加一个重要的环境变量,即
VOXEL_SDK_PATH,值为build文件夹(CMake填写的生成工程路径)所在路径,如下:
然后在Path中添加如下值, 确保程序运行能通过环境变量正确链接到我们的voxelsdk库生成的dll与lib。
我们将 VoxelCLI工程设为启动项,按下F5,
若不添加这个环境变量,将会出现以下错误:
添加完VOXEL_SDK_PATH变量以及bin和lib之后,我们在运行以下VoxelCLI程序即可得到下图结果,这就说明已经成功的编译了voxelsdk库了,接下来只要接上设备就可以使用这个程序做相关操作了。
最后最后上一张所有的环境变量:
系统变量中:
Path变量中:
请根据自己安装的路径做相应的修改即可。