当前位置:   article > 正文

VS2015+PCL1.8.0 安装注意事项:包含目录,附加依赖项与预处理器_pcl 依赖项 release vs

pcl 依赖项 release vs

本人安装过程中主要问题出现在:链接库>附加依赖项与预处理器

一、包含目录

 应查看自己的安装目录,不能盲目完全照搬网上教程,include后需再写一级

二、附加依赖项

由于pcl中.lib 较多,且网上教程复制黏贴的.lib极有可能不同,所以给出快速提取.lib的方法:

引用自:http://www.cnblogs.com/blog-vincent-0x1F7/p/9646358.html

各个库目录中的所有.lib文件就是我们的附加依赖项,但是这里要把他们区分为debug模式下的依赖项和release模式下的依赖项,而且.lib文件数量繁多,自己复制这些文件名还要分成debug、release两拨确实太多了。我们可以用批处理命令来帮我们执行。

观察各个库目录可知调试模式和发行模式的分别,在%PCL_ROOT%\lib下的.lib文件加了debug和release来区分,%PCL_ROOT%\3rdParty\Boost\lib下的以有gd的为debug模式否则为release模式,其他各个库目录也都有类似规律,所以可以在各个库目录下写批处理文件导出.lib依赖项:

1.在%PCL_ROOT%\lib下新建文本文档,改后缀名为.bat,笔记本打开编辑如下内容:

  1. @echo off
  2. for %%I in (*.lib) do echo %%I>>all.txt      //解释:对每一个(*.lib)通配符匹配到的文件名I,显示I到文件all.txt,之后的语句类似理解就可
  3. for %%I in (*debug.lib) do echo %%I>>adebug.txt
  4. for %%I in (*release.lib) do echo %%I>>arelease.txt
  5. pause

则会生成adebug.txt保存debug模式下的依赖项、arelease.txt保存release模式下的依赖项、all.txt保存所有依赖项,如下:

2.在%PCL_ROOT%\3rdParty\Boost\lib下编写:

  1. @echo off
  2. for %%I in (*.lib) do echo %%I>>all.txt
  3. for %%I in (*mt-gd-1_64.lib) do echo %%I>>adebug.txt
  4. for %%I in (*mt-1_64.lib) do echo %%I>>arelease.txt
  5. pause

3.

在%PCL_ROOT%\3rdParty\OpenNI2\Lib下只有一个不必用批处理,自己抄一下名称就好;在%PCL_ROOT%\3rdParty\FLANN\lib和%PCL_ROOT%\3rdParty\Qhull\lib下因为不太多故将所有.lib导出到一个all.txt文件然后自己根据有没有_d区分debug和release版本:

  1. @echo off
  2. for %%I in (*.lib) do echo %%I>>all.txt
  3. pause

4.在%PCL_ROOT%\3rdParty\VTK\lib下根据有无-gd区分debug和release,编写bat文件如下:

  1. @echo off
  2. for %%I in (*.lib) do echo %%I>>all.txt
  3. for %%I in (*8.0.lib) do echo %%I>>arelease.txt
  4. for %%I in (*c++.lib) do echo %%I>>arelease.txt
  5. for %%I in (*-gd.lib) do echo %%I>>adebug.txt
  6. pause

最后把所有debug模式下依赖项汇总,把所有release模式下的依赖项汇总即得到设置中所需要的依赖项。另外如果想更简单一点可以把以上的输出文件名改为同一个,这样可以所有debug的输出到一个debug.txt,所有release的输出到一个release.txt,不过要注意的是文件名要使用绝对路径。

三、预处理器

运行一个测试程序很有可能会抛出error c4996错误,

只需在项目-属性-C/C++-预处理器-预处理器定义中添加_SCL_SECURE_NO_WARNINGS就可以。

四、例程:显示兔子点云

点云下载链接:https://pan.baidu.com/s/15LZVm2Kb-tKb1CVofoLSZA    提取码:s03u

  1. #include<pcl/visualization/cloud_viewer.h>
  2. #include<iostream>//标准C++库中的输入输出类相关头文件。
  3. #include<pcl/io/io.h>
  4. #include<pcl/io/pcd_io.h>//pcd 读写类相关的头文件。
  5. #include<pcl/io/ply_io.h>
  6. #include<pcl/point_types.h> //PCL中支持的点类型头文件。
  7. int user_data;
  8. using namespace std;
  9. int viewerOneOff(pcl::visualization::PCLVisualizer& viewer)
  10. {
  11. viewer.setBackgroundColor(1.0, 0.5, 1.0); //设置背景颜色
  12. return 0;
  13. }
  14. int main()
  15. {
  16. pcl::PointCloud<pcl::PointXYZ>::Ptr cloud(new pcl::PointCloud<pcl::PointXYZ>);
  17. char strfilepath[256] = "rabbit.pcd";
  18. pcl::io::loadPCDFile(strfilepath, *cloud);
  19. pcl::visualization::CloudViewer viewer("Cloud Viewer"); //创建viewer对象
  20. viewer.showCloud(cloud);
  21. viewer.runOnVisualizationThreadOnce(viewerOneOff);
  22. system("pause");
  23. return 0;
  24. }

                                //======================高兴========================//

本文内容由网友自发贡献,转载请注明出处:【wpsshop博客】
推荐阅读
相关标签
  

闽ICP备14008679号