@TOC
1.Visual Studio2017 配置 PointCloudLibrary1.12.1?[转 Ⅰ 3]
2.VS版本选择?[转 Ⅲ 0.0]
3.windows安装PCL?[转 Ⅲ 0.1]
windows - Visual studio 配置 PCL
演示版本 (其他 系统平台 的各种VS版本安装各种PCL版本可以参考一下):
- Windows10
- VS 2017 、PCL 1.12.1
解决步骤:
Ⅲ 0.0 VS版本选择
如果安装了不适合的vs版本,导致软件启动慢、启动盘占满、影响效率。因此我们有必要根据电脑性能选择合适的版本,VS版本选择可参考下表:
C盘可用容量 | VS安装盘可用容量 | VS可选版本 | VS推荐版本 |
---|---|---|---|
20G+ | 50G+ | 2017及以上 | 最新版 |
10G+ | 40G+ | 2017以下 | 2015 |
7G+ | 8G+ | 2010及以下 | 2010 |
上表是根据C盘容量大致参考,VS要求的系统具体参数参见 VS官方,下图展示了Visual Studio 2017 所需要求:
鉴于电脑购置资金受限,因此不推荐安装VS到C盘(我安装的是D盘),尽管如此VS的安装还是会消耗C盘容量,咱也不知道为啥。为啥会说这个VS版本,因为PCL版本上面有标记VS版本,可能是推荐适配吧,所以电脑性能应 ≥ VS所需硬件性能 ≥ PCL推荐VS版本。
Ⅲ 0.1 PCL版本选择
PCL发行版本: Releases · PointCloudLibrary
可以根据自己的需求选择合适的PCL版本,这里使用官方编译好的 "AllInOne-msvc2019-win64" 文件:
PCL-1.12.1-AllInOne-msvc2019-win64.exe
pcl-1.12.1-pdb-msvc2019-win64.zip
VS安装没什么可说的,所以这里就不赘述了,如果有需求可以私聊我补上。
1.1 两个文件下载后,双击PCL-1.12.1-AllInOne-msvc2019-win64.exe
进行安装:
点击"下一步"
点击"我接收"
选择: "Do not add PCL to the system PATH"
取消勾选: "Create PCL Desktop Icon"
点击"下一步"
选择安装路径, 点击"下一步"
点击"下一步"
点击"安装",稍等片刻,安装完成。
1.2 片刻之后,会弹出一个OpenNI2的安装窗口。建议把OpenNI2安装在3rdParty文件夹里,即D:\PCL 1.12.1\3rdParty
。(当然,也可以自己设置路径,一定要记住路径,因为下面的配置要用到)
OpenNI2安装结束之后就完成了点云库的完整安装。emmmm~也可能没有弹窗直接安装完成...
没关系,小场面,不要慌。不管有没有弹窗我们来查看一下目录即可:
PCL安装文件夹:
3rdParty文件夹:
特别注意 OpenNI2文件夹:
如果 OpenNI2文件夹 下只有一个文件
OpenNI-Windows-x64-2.2.msi
, 那么就是默认安装到C盘了。(OpenNI是独立于PCL的一个应用程序)
别问我为啥知道,我这边因为 电脑配置资金不足、C盘容量紧张 就把 OpenNI 给卸载了,然后双击OpenNI-Windows-x64-2.2.msi
安装到指定目录。
1.3 解压pcl-1.11.0-pdb-msvc2019-win64.zip
文件,将解压得到的文件夹中的所有*.pdb移动到 D:\PCL 1.12.1\bin
(PCL安装路径中的bin文件夹)
很多人安装PCL都会遇到这一环节,这边手动配置环境变量(右键点击此电脑-属性-高级系统设置-高级选项卡-环境变量
):
2.1 打开系统环境变量,查看系统变量是否包含:
OPENNI2_INCLUDE64
OPENNI2_LIB64
OPENNI2_REDIST64
PCL_ROOT如果不包含就手动补上,注意OpenNI安装目录。
2.2 双击
系统变量
中的Path
,再将以下的目录添加到Path
中(注意最后一个OpenNI2的路径,要和自己刚刚安装的路径一样才行):%PCL_ROOT%\bin
%PCL_ROOT%\3rdParty\VTK\bin
%PCL_ROOT%\3rdParty\FLANN\bin
%OPENNI2_REDIST64%
%PCL_ROOT%\3rdParty\Qhull\bin
%PCL_ROOT%\3rdParty\OpenNI2\Tools世界上没有十全十美、完美无缺的事物,Windows也一样,当你新建完所有的环境变量之后点击
确定
,叮咚~又来了一个惊喜:
这边建议清理无效的系统变量,详情参考,当前,也可以自行百度解决。
2.3 环境变量添加成功后,重启电脑使得环境变量生效。
打开VS2017新建空项目,项目名称、位置自定义:
首先确保编译环境是x64,我这里选择的是Release版本,Debug版本配置只有一步不一样,其他都是一样的,我会在下文中指出。然后推荐使用新建属性表,这样可以配置多个版本,在需要的时候直接添加对应的属性表就可以,如果全部添加在自带的属性表中,以后添加的版本太多或者添加的其他库太多会导致灾难性的后果:配置属性冲突等…
Ⅲ 3.0 打开属性管理器(依次点击 视图-其他窗口-属性管理器
)
在对应的 属性管理器 中右键 属性-添加新项目属性表(名字自定义)
Release|X64 —> "release64PCL"
Debug|X64 —> "debug64PCL"
Ⅲ 3.1 配置属性
Ⅳ 3.1.1 包含目录
通用属性 >> VC++目录 >> 包含目录 中添加如下7个包含目录(注意最后一个OpenNI2的路径,要和自己刚刚安装的路径一致):
D:\PCL 1.12.1\include\pcl-1.12
D:\PCL 1.12.1\3rdParty\Boost\include\boost-1_78
D:\PCL 1.12.1\3rdParty\Eigen\eigen3
D:\PCL 1.12.1\3rdParty\FLANN\include
D:\PCL 1.12.1\3rdParty\OpenNI2\Include
D:\PCL 1.12.1\3rdParty\Qhull\include
D:\PCL 1.12.1\3rdParty\VTK\include\vtk-9.1
Ⅳ 3.1.2 库目录
通用属性 >> VC++目录 >> 库目录 中添加如下6个库目录(注意最后一个OpenNI2的路径,要和自己刚刚安装的路径一致):
D:\PCL 1.12.1\lib
D:\PCL 1.12.1\3rdParty\Boost\lib
D:\PCL 1.12.1\3rdParty\FLANN\lib
D:\PCL 1.12.1\3rdParty\OpenNI2\Lib
D:\PCL 1.12.1\3rdParty\Qhull\lib
D:\PCL 1.12.1\3rdParty\VTK\lib
Ⅳ 3.1.3 C/C++ 预处理器定义
通用属性 >> C/C++ >> 预处理器 >> 预处理器定义 中添加:
_CRT_SECURE_NO_WARNINGS
_SCL_SECURE_NO_WARNINGS
_SILENCE_FPOS_SEEKPOS_DEPRECATION_WARNING
Ⅳ 3.1.4 C/C++ SDL检查
通用属性 >> C/C++ >> 所有选项 >> SDL检查 改为 否
Ⅳ 3.1.5 附加依赖项
最后,在通用属性 >> 链接器 >> 输入 >> 附加依赖项 中添加对应的 *.lib
文件(PCL的*.lib
文件和第三方库中VTK的*.lib
文件)。
debug模式下 填写如下159个 *d.lib文件名:
库文件路径: PCL(D:\PCL 1.12.1\lib) 和 VTK(D:\PCL 1.12.1\3rdParty\VTK\lib)
1. pcl_commond.lib 2. pcl_featuresd.lib 3. pcl_filtersd.lib 4. pcl_io_plyd.lib 5. pcl_iod.lib 6. pcl_kdtreed.lib 7. pcl_keypointsd.lib 8. pcl_mld.lib 9. pcl_octreed.lib 10. pcl_outofcored.lib 11. pcl_peopled.lib 12. pcl_recognitiond.lib 13. pcl_registrationd.lib 14. pcl_sample_consensusd.lib 15. pcl_searchd.lib 16. pcl_segmentationd.lib 17. pcl_stereod.lib 18. pcl_surfaced.lib 19. pcl_trackingd.lib 20. pcl_visualizationd.lib 21. vtkcgns-9.1d.lib 22. vtkChartsCore-9.1d.lib 23. vtkCommonColor-9.1d.lib 24. vtkCommonComputationalGeometry-9.1d.lib 25. vtkCommonCore-9.1d.lib 26. vtkCommonDataModel-9.1d.lib 27. vtkCommonExecutionModel-9.1d.lib 28. vtkCommonMath-9.1d.lib 29. vtkCommonMisc-9.1d.lib 30. vtkCommonSystem-9.1d.lib 31. vtkCommonTransforms-9.1d.lib 32. vtkDICOMParser-9.1d.lib 33. vtkDomainsChemistry-9.1d.lib 34. vtkDomainsChemistryOpenGL2-9.1d.lib 35. vtkdoubleconversion-9.1d.lib 36. vtkexodusII-9.1d.lib 37. vtkexpat-9.1d.lib 38. vtkFiltersAMR-9.1d.lib 39. vtkFiltersCore-9.1d.lib 40. vtkFiltersExtraction-9.1d.lib 41. vtkFiltersFlowPaths-9.1d.lib 42. vtkFiltersGeneral-9.1d.lib 43. vtkFiltersGeneric-9.1d.lib 44. vtkFiltersGeometry-9.1d.lib 45. vtkFiltersHybrid-9.1d.lib 46. vtkFiltersHyperTree-9.1d.lib 47. vtkFiltersImaging-9.1d.lib 48. vtkFiltersModeling-9.1d.lib 49. vtkFiltersParallel-9.1d.lib 50. vtkFiltersParallelImaging-9.1d.lib 51. vtkFiltersPoints-9.1d.lib 52. vtkFiltersProgrammable-9.1d.lib 53. vtkFiltersSelection-9.1d.lib 54. vtkFiltersSMP-9.1d.lib 55. vtkFiltersSources-9.1d.lib 56. vtkFiltersStatistics-9.1d.lib 57. vtkFiltersTexture-9.1d.lib 58. vtkFiltersTopology-9.1d.lib 59. vtkFiltersVerdict-9.1d.lib 60. vtkfmt-9.1d.lib 61. vtkfreetype-9.1d.lib 62. vtkGeovisCore-9.1d.lib 63. vtkgl2ps-9.1d.lib 64. vtkglew-9.1d.lib 65. vtkhdf5_hl-9.1d.lib 66. vtkhdf5-9.1d.lib 67. vtkImagingColor-9.1d.lib 68. vtkImagingCore-9.1d.lib 69. vtkImagingFourier-9.1d.lib 70. vtkImagingGeneral-9.1d.lib 71. vtkImagingHybrid-9.1d.lib 72. vtkImagingMath-9.1d.lib 73. vtkImagingMorphological-9.1d.lib 74. vtkImagingSources-9.1d.lib 75. vtkImagingStatistics-9.1d.lib 76. vtkImagingStencil-9.1d.lib 77. vtkInfovisCore-9.1d.lib 78. vtkInfovisLayout-9.1d.lib 79. vtkInteractionImage-9.1d.lib 80. vtkInteractionStyle-9.1d.lib 81. vtkInteractionWidgets-9.1d.lib 82. vtkIOAMR-9.1d.lib 83. vtkIOAsynchronous-9.1d.lib 84. vtkIOCGNSReader-9.1d.lib 85. vtkIOChemistry-9.1d.lib 86. vtkIOCityGML-9.1d.lib 87. vtkIOCONVERGECFD-9.1d.lib 88. vtkIOCore-9.1d.lib 89. vtkIOEnSight-9.1d.lib 90. vtkIOExodus-9.1d.lib 91. vtkIOExport-9.1d.lib 92. vtkIOExportGL2PS-9.1d.lib 93. vtkIOExportPDF-9.1d.lib 94. vtkIOGeometry-9.1d.lib 95. vtkIOHDF-9.1d.lib 96. vtkIOImage-9.1d.lib 97. vtkIOImport-9.1d.lib 98. vtkIOInfovis-9.1d.lib 99. vtkIOIOSS-9.1d.lib 100. vtkIOLegacy-9.1d.lib 101. vtkIOLSDyna-9.1d.lib 102. vtkIOMINC-9.1d.lib 103. vtkIOMotionFX-9.1d.lib 104. vtkIOMovie-9.1d.lib 105. vtkIONetCDF-9.1d.lib 106. vtkIOOggTheora-9.1d.lib 107. vtkIOParallel-9.1d.lib 108. vtkIOParallelXML-9.1d.lib 109. vtkIOPLY-9.1d.lib 110. vtkIOSegY-9.1d.lib 111. vtkIOSQL-9.1d.lib 112. vtkioss-9.1d.lib 113. vtkIOTecplotTable-9.1d.lib 114. vtkIOVeraOut-9.1d.lib 115. vtkIOVideo-9.1d.lib 116. vtkIOXML-9.1d.lib 117. vtkIOXMLParser-9.1d.lib 118. vtkjpeg-9.1d.lib 119. vtkjsoncpp-9.1d.lib 120. vtkkissfft-9.1d.lib 121. vtklibharu-9.1d.lib 122. vtklibproj-9.1d.lib 123. vtklibxml2-9.1d.lib 124. vtkloguru-9.1d.lib 125. vtklz4-9.1d.lib 126. vtklzma-9.1d.lib 127. vtkmetaio-9.1d.lib 128. vtknetcdf-9.1d.lib 129. vtkogg-9.1d.lib 130. vtkParallelCore-9.1d.lib 131. vtkParallelDIY-9.1d.lib 132. vtkpng-9.1d.lib 133. vtkpugixml-9.1d.lib 134. vtkRenderingAnnotation-9.1d.lib 135. vtkRenderingContext2D-9.1d.lib 136. vtkRenderingContextOpenGL2-9.1d.lib 137. vtkRenderingCore-9.1d.lib 138. vtkRenderingFreeType-9.1d.lib 139. vtkRenderingGL2PSOpenGL2-9.1d.lib 140. vtkRenderingImage-9.1d.lib 141. vtkRenderingLabel-9.1d.lib 142. vtkRenderingLOD-9.1d.lib 143. vtkRenderingOpenGL2-9.1d.lib 144. vtkRenderingSceneGraph-9.1d.lib 145. vtkRenderingUI-9.1d.lib 146. vtkRenderingVolume-9.1d.lib 147. vtkRenderingVolumeOpenGL2-9.1d.lib 148. vtkRenderingVtkJS-9.1d.lib 149. vtksqlite-9.1d.lib 150. vtksys-9.1d.lib 151. vtkTestingRendering-9.1d.lib 152. vtktheora-9.1d.lib 153. vtktiff-9.1d.lib 154. vtkverdict-9.1d.lib 155. vtkViewsContext2D-9.1d.lib 156. vtkViewsCore-9.1d.lib 157. vtkViewsInfovis-9.1d.lib 158. vtkWrappingTools-9.1d.lib 159. vtkzlib-9.1d.lib
release模式下 填写如下159个 *.lib文件名:
库文件路径: PCL(D:\PCL 1.12.1\lib) 和 VTK(D:\PCL 1.12.1\3rdParty\VTK\lib)
1. pcl_common.lib 2. pcl_features.lib 3. pcl_filters.lib 4. pcl_io.lib 5. pcl_io_ply.lib 6. pcl_kdtree.lib 7. pcl_keypoints.lib 8. pcl_ml.lib 9. pcl_octree.lib 10. pcl_outofcore.lib 11. pcl_people.lib 12. pcl_recognition.lib 13. pcl_registration.lib 14. pcl_sample_consensus.lib 15. pcl_search.lib 16. pcl_segmentation.lib 17. pcl_stereo.lib 18. pcl_surface.lib 19. pcl_tracking.lib 20. pcl_visualization.lib 21. vtkcgns-9.1.lib 22. vtkChartsCore-9.1.lib 23. vtkCommonColor-9.1.lib 24. vtkCommonComputationalGeometry-9.1.lib 25. vtkCommonCore-9.1.lib 26. vtkCommonDataModel-9.1.lib 27. vtkCommonExecutionModel-9.1.lib 28. vtkCommonMath-9.1.lib 29. vtkCommonMisc-9.1.lib 30. vtkCommonSystem-9.1.lib 31. vtkCommonTransforms-9.1.lib 32. vtkDICOMParser-9.1.lib 33. vtkDomainsChemistry-9.1.lib 34. vtkDomainsChemistryOpenGL2-9.1.lib 35. vtkdoubleconversion-9.1.lib 36. vtkexodusII-9.1.lib 37. vtkexpat-9.1.lib 38. vtkFiltersAMR-9.1.lib 39. vtkFiltersCore-9.1.lib 40. vtkFiltersExtraction-9.1.lib 41. vtkFiltersFlowPaths-9.1.lib 42. vtkFiltersGeneral-9.1.lib 43. vtkFiltersGeneric-9.1.lib 44. vtkFiltersGeometry-9.1.lib 45. vtkFiltersHybrid-9.1.lib 46. vtkFiltersHyperTree-9.1.lib 47. vtkFiltersImaging-9.1.lib 48. vtkFiltersModeling-9.1.lib 49. vtkFiltersParallel-9.1.lib 50. vtkFiltersParallelImaging-9.1.lib 51. vtkFiltersPoints-9.1.lib 52. vtkFiltersProgrammable-9.1.lib 53. vtkFiltersSelection-9.1.lib 54. vtkFiltersSMP-9.1.lib 55. vtkFiltersSources-9.1.lib 56. vtkFiltersStatistics-9.1.lib 57. vtkFiltersTexture-9.1.lib 58. vtkFiltersTopology-9.1.lib 59. vtkFiltersVerdict-9.1.lib 60. vtkfmt-9.1.lib 61. vtkfreetype-9.1.lib 62. vtkGeovisCore-9.1.lib 63. vtkgl2ps-9.1.lib 64. vtkglew-9.1.lib 65. vtkhdf5_hl-9.1.lib 66. vtkhdf5-9.1.lib 67. vtkImagingColor-9.1.lib 68. vtkImagingCore-9.1.lib 69. vtkImagingFourier-9.1.lib 70. vtkImagingGeneral-9.1.lib 71. vtkImagingHybrid-9.1.lib 72. vtkImagingMath-9.1.lib 73. vtkImagingMorphological-9.1.lib 74. vtkImagingSources-9.1.lib 75. vtkImagingStatistics-9.1.lib 76. vtkImagingStencil-9.1.lib 77. vtkInfovisCore-9.1.lib 78. vtkInfovisLayout-9.1.lib 79. vtkInteractionImage-9.1.lib 80. vtkInteractionStyle-9.1.lib 81. vtkInteractionWidgets-9.1.lib 82. vtkIOAMR-9.1.lib 83. vtkIOAsynchronous-9.1.lib 84. vtkIOCGNSReader-9.1.lib 85. vtkIOChemistry-9.1.lib 86. vtkIOCityGML-9.1.lib 87. vtkIOCONVERGECFD-9.1.lib 88. vtkIOCore-9.1.lib 89. vtkIOEnSight-9.1.lib 90. vtkIOExodus-9.1.lib 91. vtkIOExport-9.1.lib 92. vtkIOExportGL2PS-9.1.lib 93. vtkIOExportPDF-9.1.lib 94. vtkIOGeometry-9.1.lib 95. vtkIOHDF-9.1.lib 96. vtkIOImage-9.1.lib 97. vtkIOImport-9.1.lib 98. vtkIOInfovis-9.1.lib 99. vtkIOIOSS-9.1.lib 100. vtkIOLegacy-9.1.lib 101. vtkIOLSDyna-9.1.lib 102. vtkIOMINC-9.1.lib 103. vtkIOMotionFX-9.1.lib 104. vtkIOMovie-9.1.lib 105. vtkIONetCDF-9.1.lib 106. vtkIOOggTheora-9.1.lib 107. vtkIOParallel-9.1.lib 108. vtkIOParallelXML-9.1.lib 109. vtkIOPLY-9.1.lib 110. vtkIOSegY-9.1.lib 111. vtkIOSQL-9.1.lib 112. vtkioss-9.1.lib 113. vtkIOTecplotTable-9.1.lib 114. vtkIOVeraOut-9.1.lib 115. vtkIOVideo-9.1.lib 116. vtkIOXML-9.1.lib 117. vtkIOXMLParser-9.1.lib 118. vtkjpeg-9.1.lib 119. vtkjsoncpp-9.1.lib 120. vtkkissfft-9.1.lib 121. vtklibharu-9.1.lib 122. vtklibproj-9.1.lib 123. vtklibxml2-9.1.lib 124. vtkloguru-9.1.lib 125. vtklz4-9.1.lib 126. vtklzma-9.1.lib 127. vtkmetaio-9.1.lib 128. vtknetcdf-9.1.lib 129. vtkogg-9.1.lib 130. vtkParallelCore-9.1.lib 131. vtkParallelDIY-9.1.lib 132. vtkpng-9.1.lib 133. vtkpugixml-9.1.lib 134. vtkRenderingAnnotation-9.1.lib 135. vtkRenderingContext2D-9.1.lib 136. vtkRenderingContextOpenGL2-9.1.lib 137. vtkRenderingCore-9.1.lib 138. vtkRenderingFreeType-9.1.lib 139. vtkRenderingGL2PSOpenGL2-9.1.lib 140. vtkRenderingImage-9.1.lib 141. vtkRenderingLabel-9.1.lib 142. vtkRenderingLOD-9.1.lib 143. vtkRenderingOpenGL2-9.1.lib 144. vtkRenderingSceneGraph-9.1.lib 145. vtkRenderingUI-9.1.lib 146. vtkRenderingVolume-9.1.lib 147. vtkRenderingVolumeOpenGL2-9.1.lib 148. vtkRenderingVtkJS-9.1.lib 149. vtksqlite-9.1.lib 150. vtksys-9.1.lib 151. vtkTestingRendering-9.1.lib 152. vtktheora-9.1.lib 153. vtktiff-9.1.lib 154. vtkverdict-9.1.lib 155. vtkViewsContext2D-9.1.lib 156. vtkViewsCore-9.1.lib 157. vtkViewsInfovis-9.1.lib 158. vtkWrappingTools-9.1.lib 159. vtkzlib-9.1.lib
注:VS中release模式和debug模式配置只有这一步不一样,其他配置内容都是一样的。
至此VS项目的环境配置初步完成,可以尝试运行个例程验证一下,新建一个main.cpp,代码如下:
#include <pcl/visualization/cloud_viewer.h>
#include <iostream>
#include <pcl/io/io.h>
#include <pcl/io/pcd_io.h> //pcd 读写类相关
#include <pcl/io/ply_io.h>
#include <pcl/point_types.h> //PCL 支持的点云文件类型
#include <fstream>
#include <string>
#include <vector>
using namespace std;
int main()
{
typedef struct tagPOINT_3D
{
double x; //mm world coordinate x
double y; //mm world coordinate y
double z; //mm world coordinate z
double r;
}POINT_WORLD;
// 加载txt数据
int number_Txt;
FILE *fp_txt;
tagPOINT_3D TxtPoint;
vector<tagPOINT_3D> m_vTxtPoints;
fp_txt = fopen("test.txt", "r");
if (fp_txt)
{
while (fscanf(fp_txt, "%lf %lf %lf", &TxtPoint.x, &TxtPoint.y, &TxtPoint.z) != EOF)
{
m_vTxtPoints.push_back(TxtPoint);
}
}
else
cout << "txt数据加载失败!" << endl;
number_Txt = m_vTxtPoints.size();
//pcl::PointCloud<pcl::PointXYZ> cloud;
//这里使用“PointXYZ”是因为我后面给的点云信息是包含的三维坐标,同时还有点云信息包含的rgb颜色信息的或者还有包含rgba颜色和强度信息。
pcl::PointCloud<pcl::PointXYZ>::Ptr cloud(new pcl::PointCloud<pcl::PointXYZ>);
// Fill in the cloud data
cloud->width = number_Txt;
cloud->height = 1;
cloud->is_dense = false;
cloud->points.resize(cloud->width * cloud->height);
for (size_t i = 0; i < cloud->points.size(); ++i)
{
cloud->points[i].x = m_vTxtPoints[i].x;
cloud->points[i].y = m_vTxtPoints[i].y;
cloud->points[i].z = m_vTxtPoints[i].z;
}
pcl::io::savePCDFileASCII("txt2pcd_bunny1.pcd", *cloud);
std::cerr << "Saved " << cloud->points.size() << " data points to txt2pcd.pcd." << std::endl;
//for (size_t i = 0; i < cloud.points.size(); ++i)
// std::cerr << " " << cloud.points[i].x << " " << cloud.points[i].y << " " << cloud.points[i].z << std::endl;
// PCL Visualizer
// Viewer
pcl::visualization::PCLVisualizer viewer("Cloud Viewer");
viewer.addPointCloud(cloud);
viewer.setBackgroundColor(0, 0, 0);
viewer.spin();
system("pause");
return 0;
}
运行结果:
- Q1.Part.4运行提示: 系统错误 由于找不到VCRUNTIME1401D.d,无法继续执行代码.如图
A1: 项目中使用其它动态链接库(vcruntime140_1D.dll),但电脑系统中没有,虽然编译通过了,但是运行时中断,报错缺少vcruntime140_1D.dll。解决方法无疑就是找到这个.DLL,然后放到电脑系统中。点击 动态链接库下载专区 搜索想要的.DLL,点击Download,随后把下载的文件放到系统路径
C:\Windows\System32
中即可。参考
- Q2.后续编程调试模式下可能会遇到"由于找不到
pcl_commond.dll
,无法继续执行代码。重新安装程序可 能会解决此问题。如图
A2: 遇到这个提示不要慌,如果按照上述操作一路配置完成后,那我们就检查一下:
A2-1.在目录
D:\PCL 1.12.1\bin
中存在pcl_commond.dll
A2-2.存在环境变量PCL_ROOT
A2-3.存在环境变量%PCL_ROOT%\bin
A2-4.1 打开Debug属性页(注意 此处为右键 "Debug|X64" )
A2-4.2 配置Debug属性页(通用属性-调试-环境)
A2-4.3 填写 Debug环境变量:PATH=$(PCL_ROOT)\bin;$(PCL_ROOT)\3rdParty\FLANN\bin;$(PCL_ROOT)\3rdParty\VTK\bin;$(PCL_ROOT)\Qhull\bin;$(PCL_ROOT)\3rdParty\OpenNI2\Tools;$(PATH)
代码调试不易,转载请标明出处!
如果感觉本文对您有帮助,请留下您的赞,您的支持是我坚持写作分享的最大动力,谢谢!
References
0.PointCloudLibrary官方
1.PointCloudLibrary发行版本
2.VS版本选择
3.环境变量太大问题解决
4.win10VS2017配置PCL1.9.1
5.win10VS2017配置PCL1.8.1
6.win10VS2017配置PCL1.9.1
7.点云处理C++库PCL安装
可以肯定的是学海无涯,这篇文章也会随着对 VS、PCL的深入学习而持续更新,
欢迎各位在评论区留言进行探讨交流。