编译通过PCL1.5.1的第一个例子图解
話說PCL一次性環(huán)境配置失敗,
http://blog.csdn.net/bcbobo21cn/article/details/51933508
下面決定手工搞一把;
?
參閱此文;
http://www.cnblogs.com/newpanderking/articles/4022322.html
?
首先建立一個空工程;啟動VC2012后,出現(xiàn)下面問題,不能生成工程;
未能正確加載 Visual C++ Language Manager Package包;
?
?
對此問題,在下面
https://www.microsoft.com/zh-CN/download/confirmation.aspx?id=36020
下載更新,安裝;
?
安裝之后VS恢復正常;下面繼續(xù)PCL;
?
參閱
http://www.cnblogs.com/newpanderking/articles/4022322.html
對工程添加包含目錄,庫目錄,附加依賴項;我的安裝目錄和版本與其不同;我所用到的目錄和附加依賴項如下;
?
C:\Program Files (x86)\PCL 1.5.1\3rdParty\Boost\include C:\Program Files (x86)\PCL 1.5.1\3rdParty\Eigen\include C:\Program Files (x86)\PCL 1.5.1\3rdParty\Flann\include C:\Program Files (x86)\PCL 1.5.1\3rdParty\Qhull\include C:\Program Files (x86)\PCL 1.5.1\3rdParty\VTK\include\vtk-5.8 C:\Program Files (x86)\OpenNI\Include C:\Program Files (x86)\PCL 1.5.1\include\pcl-1.5C:\Program Files (x86)\PCL 1.5.1\3rdParty\Boost\lib C:\Program Files (x86)\PCL 1.5.1\3rdParty\Qhull\lib C:\Program Files (x86)\PCL 1.5.1\3rdParty\Flann\lib C:\Program Files (x86)\PCL 1.5.1\3rdParty\VTK\lib\vtk-5.8 C:\Program Files (x86)\PCL 1.5.1\lib C:\Program Files (x86)\OpenNI\Libopengl32.lib pcl_kdtree_debug.lib pcl_io_debug.lib pcl_search_debug.lib pcl_segmentation_debug.lib pcl_apps_debug.lib pcl_features_debug.lib pcl_filters_debug.lib pcl_visualization_debug.lib pcl_common_debug.lib flann_cpp_s-gd.lib libboost_system-vc90-mt-gd-1_48.lib libboost_filesystem-vc90-mt-gd-1_48.lib libboost_thread-vc90-mt-gd-1_48.lib libboost_date_time-vc90-mt-gd-1_48.lib libboost_iostreams-vc90-mt-gd-1_48.lib vtkalglib-gd.lib vtkCharts-gd.lib vtkCommon-gd.lib vtkDICOMParser-gd.lib vtkexoIIc-gd.lib vtkexpat-gd.lib vtkFiltering-gd.lib vtkfreetype-gd.lib vtkftgl-gd.lib vtkGenericFiltering-gd.lib vtkGeovis-gd.lib vtkGraphics-gd.lib vtkhdf5-gd.lib vtkHybrid-gd.lib vtkImaging-gd.lib vtkInfovis-gd.lib vtkIO-gd.lib vtkjpeg-gd.lib vtklibxml2-gd.lib vtkmetaio-gd.lib vtkNetCDF-gd.lib vtkNetCDF_cxx-gd.lib vtkpng-gd.lib vtkproj4-gd.lib vtkRendering-gd.lib vtksqlite-gd.lib vtksys-gd.lib vtktiff-gd.lib vtkverdict-gd.lib vtkViews-gd.lib vtkVolumeRendering-gd.lib vtkWidgets-gd.lib vtkzlib-gd.lib
跑一個讀點云文件的例子;
?
?
#include <iostream> #include <pcl/io/pcd_io.h> #include <pcl/point_types.h>int main(int argc,char** argv) { pcl::PointCloud<pcl::PointXYZ>::Ptr cloud (new pcl::PointCloud<pcl::PointXYZ>);if(pcl::io::loadPCDFile<pcl::PointXYZ>("test_pcd.pcd",*cloud)==-1)//*打開點云文件 { PCL_ERROR("Couldn't read file test_pcd.pcd\n"); return(-1); } std::cout<<"Loaded " <<cloud->width*cloud->height <<" data points from test_pcd.pcd with the following fields: " <<std::endl; for(size_t i=0;i<cloud->points.size();++i) std::cout<<" "<<cloud->points[i].x <<" "<<cloud->points[i].y <<" "<<cloud->points[i].z<<std::endl;return(0); }
構建,出現(xiàn)下面錯誤;
?
錯誤?? ?2?? ?error LNK2038: 檢測到“RuntimeLibrary”的不匹配項: 值“MTd_StaticDebug”不匹配值“MDd_DynamicDebug”(pcldemo3.obj 中)?? ?F:\pcltest\pcldemo3\pcldemo3\IlmImfd.lib(ImfTiledRgbaFile.obj)?? ?pcldemo3
?
按下圖修改工程屬性,運行庫改為MTd,即可;
?
構建,成功,但是運行時又出現(xiàn)一點問題;可能是DLL或PDB沒弄好;下次再搞;
?
并且,在編譯可視化點云的例子時,又出現(xiàn)一點問題;下次再搞;
?
#include <pcl/visualization/cloud_viewer.h> #include <iostream> #include <pcl/io/io.h> #include <pcl/io/pcd_io.h>int user_data; void viewerOneOff (pcl::visualization::PCLVisualizer& viewer) {viewer.setBackgroundColor (1.0, 0.5, 1.0);pcl::PointXYZ o;o.x = 1.0;o.y = 0;o.z = 0;viewer.addSphere (o, 0.25, "sphere", 0);std::cout << "i only run once" << std::endl;}void viewerPsycho (pcl::visualization::PCLVisualizer& viewer) {static unsigned count = 0;std::stringstream ss;ss << "Once per viewer loop: " << count++;viewer.removeShape ("text", 0);viewer.addText (ss.str(), 200, 300, "text", 0);//FIXME: possible race condition here:user_data++; }int main () {pcl::PointCloud<pcl::PointXYZRGBA>::Ptr cloud (new pcl::PointCloud<pcl::PointXYZRGBA>);pcl::io::loadPCDFile ("my_point_cloud.pcd", *cloud);pcl::visualization::CloudViewer viewer("Cloud Viewer"); //showCloud函數(shù)是同步的,在此處等待直到渲染顯示為止viewer.showCloud(cloud);//該注冊函數(shù)在可視化時只調(diào)用一次viewer.runOnVisualizationThreadOnce (viewerOneOff);//該注冊函數(shù)在渲染輸出時每次都調(diào)用viewer.runOnVisualizationThread (viewerPsycho);while (!viewer.wasStopped ()){//在此處可以添加其他處理user_data++;}return 0; }
錯誤?? ?1?? ?error LNK1104: 無法打開文件“l(fā)ibboost_date_time-vc100-mt-sgd-1_48.lib”?? ?F:\pcltest\pcldemo3\pcldemo3\LINK?? ?pcldemo3
?
?
?
點云文件名,
my_point_cloud.pcd
test_pcd.pcd
總結
以上是生活随笔為你收集整理的编译通过PCL1.5.1的第一个例子图解的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: PCL环境配置失败和运行PCL自带例子
- 下一篇: ArcGIS Engine 项目10.1