vs项目配置属性表及项目移植在未配环境的设备上开发(一劳永逸 以opencv pcl路径配置为例)

一、vs配置属性表

1.选择新建或已有项目,右键解决方案,添加新建项目

80f578cda5c64882958206938be0f550.png

2.点击视图-->其他窗口-->属性管理器

165f17621828432a8e8815f0bd94631c.png

3.右键解决方案-->添加新项目属性表

9367f9d191bb49369a0475fb836c7425.png

4.更改属性表名称和目录(与项目路径一致),添加

b4dabc0a6a534946942cf642e3f644ca.png

可以看到每个配置和平台都添加了一个属性表文件

5bc2e6329eab4746bd89ddb209229259.png

5.根据项目需求选择平台和配置,配置对应的项目属性表,这里演示release x64,双击release x64下的项目属性表,出现配置窗口

3ba1fab52ef14a65a90d6bbc13298a90.png

6.配置pcl和opencv为例,现在演示一劳永逸的项目属性表方法,分别配置VC++目录-->包含目录;VC++目录-->库目录;C/C++-->预处理器;C/C++-->所有选项-->SDL检查;链接器-->输入。同时这里配置有两种方式,1是正常输入目录,2是使用相对路径进行项目打包,这里先演示1

VC++目录-->包含目录:

YOUR PATH\PCL 1.12.1\3rdParty\OpenNI2\Include C:\Program Files\PCL 1.11.1\3rdParty\VTK\include\vtk-9.1

YOUR PATH\PCL 1.12.1\3rdParty\Qhull\include

YOUR PATH\PCL 1.12.1\3rdParty\FLANN\include

YOUR PATH\PCL 1.12.1\3rdParty\Eigen\eigen3

YOUR PATH\PCL 1.12.1\3rdParty\Boost\include\boost-1_78

YOUR PATH\PCL 1.12.1\include\pcl-1.12

YOUR PATH\opencv\build\include

YOUR PATH\opencv\build\include\opencv2

 

VC++目录-->库目录

YOUR PATH\PCL 1.12.1\3rdParty\OpenNI2\Lib

YOUR PATH\PCL 1.12.1\3rdParty\VTK\lib

YOUR PATH\PCL 1.12.1\3rdParty\Qhull\lib

YOUR PATH\PCL 1.12.1\3rdParty\FLANN\lib

YOUR PATH\PCL 1.12.1\3rdParty\Boost\lib

YOUR PATH\PCL 1.12.1\lib

YOUR PATH\opencv\build\x64\vc15\lib

 

C/C++-->预处理器

_CRT_SECURE_NO_DEPRECATE

 

C/C++-->所有选项-->SDL检查

否(/sdl-)

 

链接器-->输入

release:

pcl_common.lib
pcl_features.lib
pcl_filters.lib
pcl_io.lib
pcl_io_ply.lib
pcl_kdtree.lib
pcl_keypoints.lib
pcl_ml.lib
pcl_octree.lib
pcl_outofcore.lib
pcl_people.lib
pcl_recognition.lib
pcl_registration.lib
pcl_sample_consensus.lib
pcl_search.lib
pcl_segmentation.lib
pcl_stereo.lib
pcl_surface.lib
pcl_tracking.lib
pcl_visualization.lib
libboost_atomic-vc142-mt-x64-1_78.lib
libboost_bzip2-vc142-mt-x64-1_78.lib
libboost_chrono-vc142-mt-x64-1_78.lib
libboost_container-vc142-mt-x64-1_78.lib
libboost_context-vc142-mt-x64-1_78.lib
libboost_contract-vc142-mt-x64-1_78.lib
libboost_coroutine-vc142-mt-x64-1_78.lib
libboost_date_time-vc142-mt-x64-1_78.lib
libboost_exception-vc142-mt-x64-1_78.lib
libboost_filesystem-vc142-mt-x64-1_78.lib
libboost_graph-vc142-mt-x64-1_78.lib
libboost_graph_parallel-vc142-mt-x64-1_78.lib
libboost_iostreams-vc142-mt-x64-1_78.lib
libboost_json-vc142-mt-x64-1_78.lib
libboost_locale-vc142-mt-x64-1_78.lib
libboost_log-vc142-mt-x64-1_78.lib
libboost_log_setup-vc142-mt-x64-1_78.lib
libboost_math_c99-vc142-mt-x64-1_78.lib
libboost_math_c99f-vc142-mt-x64-1_78.lib
libboost_math_c99l-vc142-mt-x64-1_78.lib
libboost_math_tr1-vc142-mt-x64-1_78.lib
libboost_math_tr1f-vc142-mt-x64-1_78.lib
libboost_math_tr1l-vc142-mt-x64-1_78.lib
libboost_mpi-vc142-mt-x64-1_78.lib
libboost_nowide-vc142-mt-x64-1_78.lib
libboost_numpy38-vc142-mt-x64-1_78.lib
libboost_prg_exec_monitor-vc142-mt-x64-1_78.lib
libboost_program_options-vc142-mt-x64-1_78.lib
libboost_python38-vc142-mt-x64-1_78.lib
libboost_random-vc142-mt-x64-1_78.lib
libboost_regex-vc142-mt-x64-1_78.lib
libboost_serialization-vc142-mt-x64-1_78.lib
libboost_system-vc142-mt-x64-1_78.lib
libboost_test_exec_monitor-vc142-mt-x64-1_78.lib
libboost_thread-vc142-mt-x64-1_78.lib
libboost_timer-vc142-mt-x64-1_78.lib
libboost_type_erasure-vc142-mt-x64-1_78.lib
libboost_unit_test_framework-vc142-mt-x64-1_78.lib
libboost_wave-vc142-mt-x64-1_78.lib
libboost_wserialization-vc142-mt-x64-1_78.lib
libboost_zlib-vc142-mt-x64-1_78.lib
flann.lib
flann_cpp.lib
flann_cpp_s.lib
flann_s.lib
OpenNI2.lib
qhullcpp.lib
qhullstatic.lib
qhullstatic_r.lib
qhull_r.lib
vtkcgns-9.1.lib
vtkChartsCore-9.1.lib
vtkCommonColor-9.1.lib
vtkCommonComputationalGeometry-9.1.lib
vtkCommonCore-9.1.lib
vtkCommonDataModel-9.1.lib
vtkCommonExecutionModel-9.1.lib
vtkCommonMath-9.1.lib
vtkCommonMisc-9.1.lib
vtkCommonSystem-9.1.lib
vtkCommonTransforms-9.1.lib
vtkDICOMParser-9.1.lib
vtkDomainsChemistry-9.1.lib
vtkDomainsChemistryOpenGL2-9.1.lib
vtkdoubleconversion-9.1.lib
vtkexodusII-9.1.lib
vtkexpat-9.1.lib
vtkFiltersAMR-9.1.lib
vtkFiltersCore-9.1.lib
vtkFiltersExtraction-9.1.lib
vtkFiltersFlowPaths-9.1.lib
vtkFiltersGeneral-9.1.lib
vtkFiltersGeneric-9.1.lib
vtkFiltersGeometry-9.1.lib
vtkFiltersHybrid-9.1.lib
vtkFiltersHyperTree-9.1.lib
vtkFiltersImaging-9.1.lib
vtkFiltersModeling-9.1.lib
vtkFiltersParallel-9.1.lib
vtkFiltersParallelImaging-9.1.lib
vtkFiltersPoints-9.1.lib
vtkFiltersProgrammable-9.1.lib
vtkFiltersSelection-9.1.lib
vtkFiltersSMP-9.1.lib
vtkFiltersSources-9.1.lib
vtkFiltersStatistics-9.1.lib
vtkFiltersTexture-9.1.lib
vtkFiltersTopology-9.1.lib
vtkFiltersVerdict-9.1.lib
vtkfmt-9.1.lib
vtkfreetype-9.1.lib
vtkGeovisCore-9.1.lib
vtkgl2ps-9.1.lib
vtkglew-9.1.lib
vtkhdf5-9.1.lib
vtkhdf5_hl-9.1.lib
vtkImagingColor-9.1.lib
vtkImagingCore-9.1.lib
vtkImagingFourier-9.1.lib
vtkImagingGeneral-9.1.lib
vtkImagingHybrid-9.1.lib
vtkImagingMath-9.1.lib
vtkImagingMorphological-9.1.lib
vtkImagingSources-9.1.lib
vtkImagingStatistics-9.1.lib
vtkImagingStencil-9.1.lib
vtkInfovisCore-9.1.lib
vtkInfovisLayout-9.1.lib
vtkInteractionImage-9.1.lib
vtkInteractionStyle-9.1.lib
vtkInteractionWidgets-9.1.lib
vtkIOAMR-9.1.lib
vtkIOAsynchronous-9.1.lib
vtkIOCGNSReader-9.1.lib
vtkIOChemistry-9.1.lib
vtkIOCityGML-9.1.lib
vtkIOCONVERGECFD-9.1.lib
vtkIOCore-9.1.lib
vtkIOEnSight-9.1.lib
vtkIOExodus-9.1.lib
vtkIOExport-9.1.lib
vtkIOExportGL2PS-9.1.lib
vtkIOExportPDF-9.1.lib
vtkIOGeometry-9.1.lib
vtkIOHDF-9.1.lib
vtkIOImage-9.1.lib
vtkIOImport-9.1.lib
vtkIOInfovis-9.1.lib
vtkIOIOSS-9.1.lib
vtkIOLegacy-9.1.lib
vtkIOLSDyna-9.1.lib
vtkIOMINC-9.1.lib
vtkIOMotionFX-9.1.lib
vtkIOMovie-9.1.lib
vtkIONetCDF-9.1.lib
vtkIOOggTheora-9.1.lib
vtkIOParallel-9.1.lib
vtkIOParallelXML-9.1.lib
vtkIOPLY-9.1.lib
vtkIOSegY-9.1.lib
vtkIOSQL-9.1.lib
vtkioss-9.1.lib
vtkIOTecplotTable-9.1.lib
vtkIOVeraOut-9.1.lib
vtkIOVideo-9.1.lib
vtkIOXML-9.1.lib
vtkIOXMLParser-9.1.lib
vtkjpeg-9.1.lib
vtkjsoncpp-9.1.lib
vtkkissfft-9.1.lib
vtklibharu-9.1.lib
vtklibproj-9.1.lib
vtklibxml2-9.1.lib
vtkloguru-9.1.lib
vtklz4-9.1.lib
vtklzma-9.1.lib
vtkmetaio-9.1.lib
vtknetcdf-9.1.lib
vtkogg-9.1.lib
vtkParallelCore-9.1.lib
vtkParallelDIY-9.1.lib
vtkpng-9.1.lib
vtkpugixml-9.1.lib
vtkRenderingAnnotation-9.1.lib
vtkRenderingContext2D-9.1.lib
vtkRenderingContextOpenGL2-9.1.lib
vtkRenderingCore-9.1.lib
vtkRenderingFreeType-9.1.lib
vtkRenderingGL2PSOpenGL2-9.1.lib
vtkRenderingImage-9.1.lib
vtkRenderingLabel-9.1.lib
vtkRenderingLOD-9.1.lib
vtkRenderingOpenGL2-9.1.lib
vtkRenderingSceneGraph-9.1.lib
vtkRenderingUI-9.1.lib
vtkRenderingVolume-9.1.lib
vtkRenderingVolumeOpenGL2-9.1.lib
vtkRenderingVtkJS-9.1.lib
vtksqlite-9.1.lib
vtksys-9.1.lib
vtkTestingRendering-9.1.lib
vtktheora-9.1.lib
vtktiff-9.1.lib
vtkverdict-9.1.lib
vtkViewsContext2D-9.1.lib
vtkViewsCore-9.1.lib
vtkViewsInfovis-9.1.lib
vtkWrappingTools-9.1.lib
vtkzlib-9.1.lib
opencv_world460.lib

7.配置完成后,点击确定,后一定要再右键属性表,点击保存

9cb7ca52f41c44809119019236939cb6.png

fa2688b67b57417eb12692bf0d1a7cb3.png

8.这样即可配置完成,这样可以很方便的配置不同的平台,同时保存的属性表也可以引入其他项目,保存的属性表文件在项目根目录下面,与cpp源文件同级,这样就可以将此属性表添加在新的项目里,新的项目无需再配置路径(对应pcl和opencv路径不能更改)

9077201da97f421fb7a2862658b527fc.png

9.将刚才保存的属性表引入新项目,新建或打开需要的项目,点击视图-->其他窗口-->属性管理器

62cca15c20404c7ca9d3b236391a001f.png

10.选择对应的平台,选择添加现有属性表,浏览,找到刚才的保存路径(或将属性表复制到一个路径)

0ad74d9ef30640d78e29da2d587bed38.png

3e2b0b3a967242e79868f6f3315c361d.png

11.可以看到刚刚配置好的路径已经被引入了(记得右键属性表保存),这种方式适合新项目的引入,只需配置一次,后续即可快捷使用,一劳永逸

81324cd14c5f480d817bd3a08fbf976d.png

二、相对路径项目打包(在无cv与pcl环境的设备上可直接运行)

1.刚刚介绍了第1种方式--项目属性表的输入目录,下面介绍第2种,配置相对路径,同样还是打开属性配置页,配置VC++目录-->包含目录;VC++目录-->库目录;C/C++-->预处理器;C/C++-->所有选项-->SDL检查;链接器-->输入。

00ba6d30d929477aa698ac870b968a33.png2.将pcl和opencv安装位置里的动态链接库和静态库及头文件库放入根目录(cpp源文件或h头文件所在的目录)下,这里新建library9f3a59693929426c9feffc26e5330761.png

里面新建cv和pcl(用以区分)

8677001aaf59472bba200621e0a2b87b.png

到opencv安装目录里复制粘贴引入include、bin、和lib文件夹到根目录下刚刚新建的library里面的cv目录

cv:

fb76290b56934f0b9792316b0e948c0e.png

到pcl安装目录里复制粘贴引入3rdparty、bin、lib文件夹到根目录下刚刚新建的library里面的pcl目录

pcl:

6297804a03f14066a4176c7245b37dc1.png

3.接着配置包含目录和库目录路径,需要使用相对路径表示如下:(具体根据自己的命名和路径 ./表示当前目录即根目录)

96c8841347514cb3a9eaa2961f96838b.png

32519404bde04b1e9958ef1f1f9dc66a.png

4.继续配置剩余C/C++-->预处理器;C/C++-->所有选项-->SDL检查;链接器-->输入。这此配置请参考一里面的步骤6,完成后保存属性表,这样即把相对路径的库包含进了项目中,适合在其他设备移植使用,只需要在其他设备复制粘贴即可开发使用,且设备无需配置pcl与opencv环境,(但要有vs)

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值