Windows下PCL及其第三方库的安装编译过程
PCL库介绍:
Point Cloud Library (PCL) 是一个进行2D/3D图像处理和点云处理工程库。
PCL可以实现的功能:http://www.pointclouds.org/documentation/
PCL及其第三方库的安装、编译
PCL及其第三方库的安装、编译有两种方法:1、下载预编译版本。2、从源码进行编译安装。
2.1 如果只是想使用最新版本的PCL库,仍然使用Microsoft Visual Studio作为编译工具,那么第三方库可以不从源码进行编译安装,而使用PCL官网提供的安装版本进行安装,PCL库则需要从源码开始进行编译、安装(http://pointclouds.org/documentation/tutorials/compiling_pcl_windows.php#compiling-pcl-windows)。
2.2 如果不想使用Microsoft Visual Studio作为编译工具 (比如想使用codeblocks的MinGW),则第三方库和PCL库都需要从源码进行安装编译(http://pointclouds.org/documentation/tutorials/compiling_pcl_dependencies_windows.php#compiling-pcl-dependencies-windows)。
2.3 本文主要讲解2.1的安装过程。
在Windows上,使用Microsoft Visual Studio作为编译工具,对PCL及其第三方库进行安装、编译过程:
PCL_DEPRECATED ("template void savePNGFile (const std::string& file_name, const pcl::PointCloud& cloud),
"pcl::io::savePNGFile (file_name, cloud) is deprecated, please use a new generic "
"function pcl::io::savePNGFile (file_name, cloud, field_name) with \"rgb\" as the field name."
);"
为
"template PCL_DEPRECATED (void savePNGFile (const std::string& file_name, const pcl::PointCloud& cloud),
"pcl::io::savePNGFile (file_name, cloud) is deprecated, please use a new generic "
"function pcl::io::savePNGFile (file_name, cloud, field_name) with \"rgb\" as the field name."
);"。参考资料:http://blog.csdn.net/wishchin/article/details/14420037
PCL库在vs2010中的配置过程
C:\Program Files\PCL\Eigen\include
C:\Program Files\PCL\flann\include
C:\Program Files\PCL\VTK 5.8.0\include\vtk-5.8
C:\Program Files\PCL\Boost\include
C:\Program Files\PCL\include\pcl-1.7
b) 在库目录里(Library Directories)添加:
C:\Program Files\PCL\flann\lib
C:\Program Files\PCL\VTK 5.8.0\lib\vtk-5.8
C:\Program Files\PCL\Boost\lib
C:\Program Files\PCL\lib
C:\Program Files\PCL\Eigen\include
C:\Program Files\PCL\flann\include
C:\Program Files\PCL\VTK 5.8.0\include\vtk-5.8
C:\Program Files\PCL\Boost\include
C:\Program Files\PCL\include\pcl-1.7
C:\Program Files\PCL\flann\lib
C:\Program Files\PCL\VTK 5.8.0\lib\vtk-5.8
C:\Program Files\PCL\Boost\lib
C:\Program Files\PCL\lib
opengl32.lib
pcl_common_debug.lib
pcl_features_debug.lib
pcl_filters_debug.lib
pcl_io_debug.lib
pcl_io_ply_debug.lib
pcl_kdtree_debug.lib
pcl_keypoints_debug.lib
pcl_octree_debug.lib
pcl_outofcore_debug.lib
pcl_people_debug.lib
pcl_recognition_debug.lib
pcl_registration_debug.lib
pcl_sample_consensus_debug.lib
pcl_search_debug.lib
pcl_segmentation_debug.lib
pcl_surface_debug.lib
pcl_tracking_debug.lib
pcl_visualization_debug.lib
boost_chrono-vc100-mt-gd-1_49.lib
boost_date_time-vc100-mt-gd-1_49.lib
boost_filesystem-vc100-mt-gd-1_49.lib
boost_graph-vc100-mt-gd-1_49.lib
boost_graph_parallel-vc100-mt-gd-1_49.lib
boost_iostreams-vc100-mt-gd-1_49.lib
boost_locale-vc100-mt-gd-1_49.lib
boost_math_c99-vc100-mt-gd-1_49.lib
boost_math_c99f-vc100-mt-gd-1_49.lib
boost_math_tr1-vc100-mt-gd-1_49.lib
boost_math_tr1f-vc100-mt-gd-1_49.lib
boost_mpi-vc100-mt-gd-1_49.lib
boost_prg_exec_monitor-vc100-mt-gd-1_49.lib
boost_program_options-vc100-mt-gd-1_49.lib
boost_random-vc100-mt-gd-1_49.lib
boost_regex-vc100-mt-gd-1_49.lib
boost_serialization-vc100-mt-gd-1_49.lib
boost_signals-vc100-mt-gd-1_49.lib
boost_system-vc100-mt-gd-1_49.lib
boost_thread-vc100-mt-gd-1_49.lib
boost_timer-vc100-mt-gd-1_49.lib
boost_unit_test_framework-vc100-mt-gd-1_49.lib
boost_wave-vc100-mt-gd-1_49.lib
boost_wserialization-vc100-mt-gd-1_49.lib
libboost_chrono-vc100-mt-gd-1_49.lib
libboost_date_time-vc100-mt-gd-1_49.lib
libboost_filesystem-vc100-mt-gd-1_49.lib
libboost_graph_parallel-vc100-mt-gd-1_49.lib
libboost_iostreams-vc100-mt-gd-1_49.lib
libboost_locale-vc100-mt-gd-1_49.lib
libboost_math_c99-vc100-mt-gd-1_49.lib
libboost_math_c99f-vc100-mt-gd-1_49.lib
libboost_math_tr1-vc100-mt-gd-1_49.lib
libboost_math_tr1f-vc100-mt-gd-1_49.lib
libboost_mpi-vc100-mt-gd-1_49.lib
libboost_prg_exec_monitor-vc100-mt-gd-1_49.lib
libboost_program_options-vc100-mt-gd-1_49.lib
libboost_random-vc100-mt-gd-1_49.lib
libboost_regex-vc100-mt-gd-1_49.lib
libboost_serialization-vc100-mt-gd-1_49.lib
libboost_signals-vc100-mt-gd-1_49.lib
libboost_system-vc100-mt-gd-1_49.lib
libboost_test_exec_monitor-vc100-mt-gd-1_49.lib
libboost_thread-vc100-mt-gd-1_49.lib
libboost_timer-vc100-mt-gd-1_49.lib
libboost_unit_test_framework-vc100-mt-gd-1_49.lib
libboost_wave-vc100-mt-gd-1_49.lib
libboost_wserialization-vc100-mt-gd-1_49.lib
MapReduceMPI-gd.lib
mpistubs-gd.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
flann-gd.lib
flann_cpp_s-gd.lib
flann_cuda_s-gd.lib
flann_s-gd.lib
附一段Python的程序,供参考:
import sys
RootDir="C:\\Program Files\\PCL\\VTK 5.8.0\\lib\\vtk-5.8\\"
a=os.listdir(RootDir)
out=open("C:\\Users\\Administrator\\Desktop\\test.txt",'w')
final=[]
for s in a:
print RootDir+s
if os.path.isfile(RootDir+s):
if os.path.splitext(s)[1]==".lib":
final.append(s)
#在这里修改i从0开始或从1开始,以区分debug和release版本的不同
for i in range(1,len(final),2):
out.write(final[i]+'\n')
out.close()
pcl_common_release.lib
pcl_features_release.lib
pcl_filters_release.lib
pcl_io_ply_release.lib
pcl_io_release.lib
pcl_kdtree_release.lib
pcl_keypoints_release.lib
pcl_octree_release.lib
pcl_outofcore_release.lib
pcl_people_release.lib
pcl_recognition_release.lib
pcl_registration_release.lib
pcl_sample_consensus_release.lib
pcl_search_release.lib
pcl_segmentation_release.lib
pcl_surface_release.lib
pcl_tracking_release.lib
pcl_visualization_release.lib
boost_chrono-vc100-mt-1_49.lib
boost_date_time-vc100-mt-1_49.lib
boost_filesystem-vc100-mt-1_49.lib
boost_graph-vc100-mt-1_49.lib
boost_graph_parallel-vc100-mt-1_49.lib
boost_iostreams-vc100-mt-1_49.lib
boost_locale-vc100-mt-1_49.lib
boost_math_c99-vc100-mt-1_49.lib
boost_math_c99f-vc100-mt-1_49.lib
boost_math_tr1-vc100-mt-1_49.lib
boost_math_tr1f-vc100-mt-1_49.lib
boost_mpi-vc100-mt-1_49.lib
boost_prg_exec_monitor-vc100-mt-1_49.lib
boost_program_options-vc100-mt-1_49.lib
boost_random-vc100-mt-1_49.lib
boost_regex-vc100-mt-1_49.lib
boost_serialization-vc100-mt-1_49.lib
boost_signals-vc100-mt-1_49.lib
boost_system-vc100-mt-1_49.lib
boost_thread-vc100-mt-1_49.lib
boost_timer-vc100-mt-1_49.lib
boost_unit_test_framework-vc100-mt-1_49.lib
boost_wave-vc100-mt-1_49.lib
boost_wserialization-vc100-mt-1_49.lib
libboost_chrono-vc100-mt-1_49.lib
libboost_date_time-vc100-mt-1_49.lib
libboost_filesystem-vc100-mt-1_49.lib
libboost_graph_parallel-vc100-mt-1_49.lib
libboost_iostreams-vc100-mt-1_49.lib
libboost_locale-vc100-mt-1_49.lib
libboost_math_c99-vc100-mt-1_49.lib
libboost_math_c99f-vc100-mt-1_49.lib
libboost_math_tr1-vc100-mt-1_49.lib
libboost_math_tr1f-vc100-mt-1_49.lib
libboost_mpi-vc100-mt-1_49.lib
libboost_prg_exec_monitor-vc100-mt-1_49.lib
libboost_program_options-vc100-mt-1_49.lib
libboost_random-vc100-mt-1_49.lib
libboost_regex-vc100-mt-1_49.lib
libboost_serialization-vc100-mt-1_49.lib
libboost_signals-vc100-mt-1_49.lib
libboost_system-vc100-mt-1_49.lib
libboost_test_exec_monitor-vc100-mt-1_49.lib
libboost_thread-vc100-mt-1_49.lib
libboost_timer-vc100-mt-1_49.lib
libboost_unit_test_framework-vc100-mt-1_49.lib
libboost_wave-vc100-mt-1_49.lib
libboost_wserialization-vc100-mt-1_49.lib
MapReduceMPI.lib
mpistubs.lib
vtkalglib.lib
vtkCharts.lib
vtkCommon.lib
vtkDICOMParser.lib
vtkexoIIc.lib
vtkexpat.lib
vtkFiltering.lib
vtkfreetype.lib
vtkftgl.lib
vtkGenericFiltering.lib
vtkGeovis.lib
vtkGraphics.lib
vtkhdf5.lib
vtkHybrid.lib
vtkImaging.lib
vtkInfovis.lib
vtkIO.lib
vtkjpeg.lib
vtklibxml2.lib
vtkmetaio.lib
vtkNetCDF.lib
vtkNetCDF_cxx.lib
vtkpng.lib
vtkproj4.lib
vtkRendering.lib
vtksqlite.lib
vtksys.lib
vtktiff.lib
vtkverdict.lib
vtkViews.lib
vtkVolumeRendering.lib
vtkWidgets.lib
vtkzlib.lib
flann.lib
flann_cpp_s.lib
flann_cuda_s.lib
flann_s.lib
注:
在这之后,就完全完成了PCL的编译、安装、配置过程。在安装、编译、配置过程中看过不少人的博客,多谢各位的帮助。