当前位置: 代码迷 >> 综合 >> VS2017+CUDA9.2+Cmake3.13成功编译PCL1.9.0源码 , 并成功运行CUDA程序(教程)
  详细解决方案

VS2017+CUDA9.2+Cmake3.13成功编译PCL1.9.0源码 , 并成功运行CUDA程序(教程)

热度:125   发布时间:2023-10-13 10:29:44.0

简述下本人这几天踩坑,花了三天时间,终于通过自己理解加经验通过CUDA9.2与vs2017成功编译PCL1.9.0源码,还有一定要记住,安装的库要对应版本,就是对应更新年份等,比如CUDA9.2与PCL1.9.0都是2018年更新的,在这里我建议,所有用到的库都是用稳定版本,这样可以减少自己采坑。下面是我编译成功的过程:

  首先,需要准备四个东西:CUDA9.2,VS2017, PCL1.9.0, Cmake 3.13

  CUDA9..2官网下载链接:https://developer.nvidia.com/cuda-toolkit-archive (具体配置请百度相关内容)

  VS2017下载下载链接:https://visualstudio.microsoft.com/zh-hans/downloads/(具体配置请百度相关内容)

  Cmake官网下载地址:https://cmake.org/download/

  PCL1.9.0需要下载两个东西

  一个是PCL-1.9.0-AllInOne-msvc2017-win64.exe,下载链接为 https://github.com/PointCloudLibrary/pcl/releases/tag/pcl- 1.9.0。

 下载好后配置环境变量,按照如下教程配置:https://blog.csdn.net/weixin_41991128/article/details/83864713#1_43

只需要配置好我的电脑中的环境变量,先不用添加属性表,等后面编译完成源码在加属性表。

 另一个是PCL1.9.0的源码,下载链接为https://github.com/PointCloudLibrary/pcl/tree/pcl-1.9.0

然后将源码解压放于D盘,解压得到如图文件夹VS2017+CUDA9.2+Cmake3.13成功编译PCL1.9.0源码 , 并成功运行CUDA程序(教程)

  进入该文件夹,找到cmake文件夹,如图VS2017+CUDA9.2+Cmake3.13成功编译PCL1.9.0源码 , 并成功运行CUDA程序(教程)

 在进入cmake文件夹,找到pcl_find_boost.cmake这个文件,如图VS2017+CUDA9.2+Cmake3.13成功编译PCL1.9.0源码 , 并成功运行CUDA程序(教程)

 然后用Notepad++或者记事本打开,最好使用Notepad++打开,记住一定要右键使用管理员权限打开,找到

 set(Boost_ADDITIONAL_VERSIONS 这句,然后在下面添加boost的版本,比如PCL1.9.0的boost版本是1.6.8,就添加“1.68.0” “1.68” 如图所示。

 VS2017+CUDA9.2+Cmake3.13成功编译PCL1.9.0源码 , 并成功运行CUDA程序(教程)

 添加完毕后,打开Cmake3.13。

 将pcl-pcl-1.9.0源码文件夹里的CmakeLists.txt文件拖入Cmake中,CmakeLists.txt如图VS2017+CUDA9.2+Cmake3.13成功编译PCL1.9.0源码 , 并成功运行CUDA程序(教程)

  然后在pcl源码文件夹的相同目录下新建一个文件夹,命名为pcl 1.9.0 build,如图VS2017+CUDA9.2+Cmake3.13成功编译PCL1.9.0源码 , 并成功运行CUDA程序(教程)

  转到Cmake软件中,选择好对应的文件夹,把Grouped和Advanced都打勾,如图VS2017+CUDA9.2+Cmake3.13成功编译PCL1.9.0源码 , 并成功运行CUDA程序(教程)

  接着点击VS2017+CUDA9.2+Cmake3.13成功编译PCL1.9.0源码 , 并成功运行CUDA程序(教程)

  选择VS2017 Win64,VS2017+CUDA9.2+Cmake3.13成功编译PCL1.9.0源码 , 并成功运行CUDA程序(教程)

 

然后Finish,等待一会,显示出错,不用理会,点ok,然后添加Eigen库,如图

VS2017+CUDA9.2+Cmake3.13成功编译PCL1.9.0源码 , 并成功运行CUDA程序(教程)

 

 再点击configue,显示出大串红色的东西,不用管太多,我们选择进入BUILD下,并将BUILD_CUDA和BUILD_GPU打勾,如图VS2017+CUDA9.2+Cmake3.13成功编译PCL1.9.0源码 , 并成功运行CUDA程序(教程)

 然后再点击configure,然后是这样的VS2017+CUDA9.2+Cmake3.13成功编译PCL1.9.0源码 , 并成功运行CUDA程序(教程)

 接着我们只需要按照我们所需要的库打上勾就好,打完勾后,我们再点击configure,然后直到没有红色出现。如图VS2017+CUDA9.2+Cmake3.13成功编译PCL1.9.0源码 , 并成功运行CUDA程序(教程)

然后我们再点击生成按钮,就是generate。

以上就是Cmake的过程。

接下来就要小心点了,由于VS2017与CUDA9.2有不兼容的现象,会导致编译过程出现许多错误,所以我们首先调整VS2017的编译器版本,进入C盘的 C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v9.2\include\crt 找到host_config.h,VS2017+CUDA9.2+Cmake3.13成功编译PCL1.9.0源码 , 并成功运行CUDA程序(教程)

 用Notepad++打开它,找到如图鼠标之所在的这一行字,将后面的1913改成1915即可,一定要使用管理员权限更改,否则不生  效,改完之后就不用再担心CUDA9.2不支持VS2017了。

VS2017+CUDA9.2+Cmake3.13成功编译PCL1.9.0源码 , 并成功运行CUDA程序(教程)

 

最后用管理员权限打开VS2017 , 在打开PCL.sln项目 VS2017+CUDA9.2+Cmake3.13成功编译PCL1.9.0源码 , 并成功运行CUDA程序(教程)

 然后分别批生成Debug和Release VS2017+CUDA9.2+Cmake3.13成功编译PCL1.9.0源码 , 并成功运行CUDA程序(教程)

 在生成Install,VS2017+CUDA9.2+Cmake3.13成功编译PCL1.9.0源码 , 并成功运行CUDA程序(教程)

全部编译大概需要1个小时(好的电脑),编译成功如图VS2017+CUDA9.2+Cmake3.13成功编译PCL1.9.0源码 , 并成功运行CUDA程序(教程)


 在编译过程中如果出现报错,就把报错信息复制粘贴到谷歌搜索解决办法。如果有不懂的,欢迎评论,有时间我会解答!!