下面是我配置的具体过程,配置成功了,我就记录一下
我的配置版本和环境:Win10+VS2015+Qt5.9.4+PCL1.8.1+VTK8.0.0+Cmake
我建议大家用这个版本的,最新版本的容易出问题,PCL1.8.1与VTK8.0.0是搭配着使用的。
我们所需要的软件主要是下面几个:
1、 VS2015安装教程:传送门
百度网盘链接:https://pan.baidu.com/s/1saTI3OscsN4uiMdjCL80pA
提取码:s5g9
激活码:HMGNV-WCYXV-X7G9W-YCX63-B98R2
2、 Qt5.9.4:Qt虽然说没有VS那么普遍,但是其功能的强大是毋庸置疑的,我用的版本是5.9.4,
下载地址:http://download.qt.io/archive/qt/
百度网盘链接:https://pan.baidu.com/s/1cTpDxtqpoeVUZsdoEp0I1Q
提取码:yc8v
3、 PCL1.8.1
下载地址:https://github.com/PointCloudLibrary/pcl/releases/tag/pcl-1.8.1
4、 cmake下载地址:https://cmake.org/download/
百度网盘:https://pan.baidu.com/s/1uZm0YHrzV6ejZN4eyjCyBw
提取码:7jvz
5、VTK8.0.0下载地址:https://gitlab.kitware.com/vtk/vtk/tree/v8.0.0
至此我们所需要的所有软件都已经罗列完毕,在这要特意说明一下,因为我的系统是64位Windows10系统,所以上述的软件都是64位Windows软件。
大家要是积分多也可以支持一下我,去我博客直接下载资源。
这个不多说,网上教程很多,前面有安装教程的链接,可以打开直接用。
安装Qt5.9.4
下载完成后,双击安装:
一直下一步
选择组件:
然后继续安装,直到安装完成。
要用VS去编程,所以qt插件是必不可少的。
可以在VS2015的扩展更新里面搜
qt-vsaddin-msvc2015-2.2.0
百度网盘下载链接:https://pan.baidu.com/s/1LK_RnSDb0wxm3D-zzf-Yrw
提取码:olnn
同样的点击安装即可。
安装结束后,打开vs2015进行配置:
可以看到,导航栏里多了“Qt VS Tools”的选项。
要注意要关掉qt-vsaddin-msvc2015-2.2.0的更新设置,不然后面会出问题
成功后新建Qt项目会有Qt GUI Application
点击选择“Qt Option”选项。然后添加Qt for msvc,这里选择自己安装的Qt的目录下的msvc,如下是我的安装目录。
然后选择"OK"即可。
可以先测试一下VS2015下Qt效果
安装完成后,开始进行代码测试:
直接编译,启动程序即可:
可以启动起来,说明安装成功,可以正常使用Qt。
一定要能在Release模式下运行成功。
a. 解压VTK8.0,备用
b. CMake配置VTK for Qt编译环境:
创建VTK文件夹,在此文件夹下新建两个如下图所示的文件夹:vtk_src和vtk_bin,将解压的VTK8.0放入vtk_src文件夹下。
启动CMake,将路径写好,如下图,点击Configure
选 Visual Studio 14 2015,第二栏选择x64,点击finish,等待配置完成。
选择BUILD_SHADRED_LIBS,如图:
安装目录:
如图勾选:
完成上述三个设置后,点击Configure,会报错,正常的现象,继续配置。
在这中间可能会出现下面的情况,如图所示:
你只需要这样配置一下就可以了,如下:
再次点击“Configure”,对照下面的信息是否相同,一定要是你自己的Qt5.9.4安装目录,不一定是在C盘下。
如果相同的话,那就点击“Generate”生成VS项目文件。
点击“Open Project”,会调到VS2015软件中。在保证是编译器是64位的情况下,直接编译Release版本的文件。
或者以管理员命令启动VS2015,然后VS2015中打开vtk_bin8.0文件夹下的VTK.sln
打开工程后,选择Release和x64,默认启动项为ALL_BUILD,鼠标右键直接选择生成即可。
等了一段时间,然后就成功了,如果有失败,必须删除vtk_bin文件夹下所有文件,重头再来。
选INSTALL,右键点生成,很快就生成了
编译结果如下图:
到这里,我们的VTK文件已经全部生成完毕。
将下图所示的三个东西,复制到E:\Qt5.9.4\5.9.4\msvc2015_64\plugins\designer\目录。
启动Qt Designer,这里有两个版本,一般上面是32位,下面是64位。根据编译的版本选择。
打开VS2015,新建C++,Win32控制台应用程序,点击完成。
点击属性管理器,在Release|x64右击,添加新项目属性表,取名PCLRelease64,如下图:
双击PCLRelease64,弹出属性页,左侧选中VC++目录。
右侧包含目录添加如下路径(根据自己的路径一一对应起来)
右侧库目录添加如下路径(根据自己的路径一一对应起来)
左侧点击链接器,再点输入,右侧找到附加依赖项,添加如下依赖项(直接复制粘贴)
shell32.lib
vtknetcdf_c++.lib
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_ml_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_stereo_release.lib
pcl_surface_release.lib
pcl_tracking_release.lib
pcl_visualization_release.lib
libboost_atomic-vc140-mt-1_64.lib
libboost_bzip2-vc140-mt-1_64.lib
libboost_chrono-vc140-mt-1_64.lib
libboost_container-vc140-mt-1_64.lib
libboost_context-vc140-mt-1_64.lib
libboost_coroutine-vc140-mt-1_64.lib
libboost_date_time-vc140-mt-1_64.lib
libboost_exception-vc140-mt-1_64.lib
libboost_fiber-vc140-mt-1_64.lib
libboost_filesystem-vc140-mt-1_64.lib
libboost_graph-vc140-mt-1_64.lib
libboost_graph_parallel-vc140-mt-1_64.lib
libboost_iostreams-vc140-mt-1_64.lib
libboost_locale-vc140-mt-1_64.lib
libboost_log-vc140-mt-1_64.lib
libboost_log_setup-vc140-mt-1_64.lib
libboost_math_c99-vc140-mt-1_64.lib
libboost_math_c99f-vc140-mt-1_64.lib
libboost_math_c99l-vc140-mt-1_64.lib
libboost_math_tr1-vc140-mt-1_64.lib
libboost_math_tr1f-vc140-mt-1_64.lib
libboost_math_tr1l-vc140-mt-1_64.lib
libboost_mpi-vc140-mt-1_64.lib
libboost_numpy3-vc140-mt-1_64.lib
libboost_numpy-vc140-mt-1_64.lib
libboost_prg_exec_monitor-vc140-mt-1_64.lib
libboost_program_options-vc140-mt-1_64.lib
libboost_python3-vc140-mt-1_64.lib
libboost_python-vc140-mt-1_64.lib
libboost_random-vc140-mt-1_64.lib
libboost_regex-vc140-mt-1_64.lib
libboost_serialization-vc140-mt-1_64.lib
libboost_signals-vc140-mt-1_64.lib
libboost_system-vc140-mt-1_64.lib
libboost_test_exec_monitor-vc140-mt-1_64.lib
libboost_thread-vc140-mt-1_64.lib
libboost_timer-vc140-mt-1_64.lib
libboost_type_erasure-vc140-mt-1_64.lib
libboost_unit_test_framework-vc140-mt-1_64.lib
libboost_wave-vc140-mt-1_64.lib
libboost_wserialization-vc140-mt-1_64.lib
libboost_zlib-vc140-mt-1_64.lib
flann.lib
flann_cpp.lib
flann_cpp_s.lib
flann_s.lib
qhull_d.lib
qhullcpp_d.lib
qhullstatic_d.lib
qhullstatic_r_d.lib
qhull_p_d.lib
qhull_r_d.lib
vtkalglib-8.0.lib
vtkChartsCore-8.0.lib
vtkCommonColor-8.0.lib
vtkCommonComputationalGeometry-8.0.lib
vtkCommonCore-8.0.lib
vtkCommonDataModel-8.0.lib
vtkCommonExecutionModel-8.0.lib
vtkCommonMath-8.0.lib
vtkCommonMisc-8.0.lib
vtkCommonSystem-8.0.lib
vtkCommonTransforms-8.0.lib
vtkDICOMParser-8.0.lib
vtkDomainsChemistry-8.0.lib
vtkexoIIc-8.0.lib
vtkexpat-8.0.lib
vtkFiltersAMR-8.0.lib
vtkFiltersCore-8.0.lib
vtkFiltersExtraction-8.0.lib
vtkFiltersFlowPaths-8.0.lib
vtkFiltersGeneral-8.0.lib
vtkFiltersGeneric-8.0.lib
vtkFiltersGeometry-8.0.lib
vtkFiltersHybrid-8.0.lib
vtkFiltersHyperTree-8.0.lib
vtkFiltersImaging-8.0.lib
vtkFiltersModeling-8.0.lib
vtkFiltersParallel-8.0.lib
vtkFiltersParallelImaging-8.0.lib
vtkFiltersPoints-8.0.lib
vtkFiltersProgrammable-8.0.lib
vtkFiltersSelection-8.0.lib
vtkFiltersSMP-8.0.lib
vtkFiltersSources-8.0.lib
vtkFiltersStatistics-8.0.lib
vtkFiltersTexture-8.0.lib
vtkFiltersTopology-8.0.lib
vtkFiltersVerdict-8.0.lib
vtkfreetype-8.0.lib
vtkGeovisCore-8.0.lib
vtkgl2ps-8.0.lib
vtkhdf5-8.0.lib
vtkhdf5_hl-8.0.lib
vtkImagingColor-8.0.lib
vtkImagingCore-8.0.lib
vtkImagingFourier-8.0.lib
vtkImagingGeneral-8.0.lib
vtkImagingHybrid-8.0.lib
vtkImagingMath-8.0.lib
vtkImagingMorphological-8.0.lib
vtkImagingSources-8.0.lib
vtkImagingStatistics-8.0.lib
vtkImagingStencil-8.0.lib
vtkInfovisCore-8.0.lib
vtkInfovisLayout-8.0.lib
vtkInteractionImage-8.0.lib
vtkInteractionStyle-8.0.lib
vtkInteractionWidgets-8.0.lib
vtkIOAMR-8.0.lib
vtkIOCore-8.0.lib
vtkIOEnSight-8.0.lib
vtkIOExodus-8.0.lib
vtkIOExport-8.0.lib
vtkIOExportOpenGL-8.0.lib
vtkIOGeometry-8.0.lib
vtkIOImage-8.0.lib
vtkIOImport-8.0.lib
vtkIOInfovis-8.0.lib
vtkIOLegacy-8.0.lib
vtkIOLSDyna-8.0.lib
vtkIOMINC-8.0.lib
vtkIOMovie-8.0.lib
vtkIONetCDF-8.0.lib
vtkIOParallel-8.0.lib
vtkIOParallelXML-8.0.lib
vtkIOPLY-8.0.lib
vtkIOSQL-8.0.lib
vtkIOTecplotTable-8.0.lib
vtkIOVideo-8.0.lib
vtkIOXML-8.0.lib
vtkIOXMLParser-8.0.lib
vtkjpeg-8.0.lib
vtkjsoncpp-8.0.lib
vtklibharu-8.0.lib
vtklibxml2-8.0.lib
vtklz4-8.0.lib
vtkmetaio-8.0.lib
vtkNetCDF-8.0.lib
vtkoggtheora-8.0.lib
vtkParallelCore-8.0.lib
vtkpng-8.0.lib
vtkproj4-8.0.lib
vtkRenderingAnnotation-8.0.lib
vtkRenderingContext2D-8.0.lib
vtkRenderingContextOpenGL-8.0.lib
vtkRenderingCore-8.0.lib
vtkRenderingFreeType-8.0.lib
vtkRenderingGL2PS-8.0.lib
vtkRenderingImage-8.0.lib
vtkRenderingLabel-8.0.lib
vtkRenderingLIC-8.0.lib
vtkRenderingLOD-8.0.lib
vtkRenderingOpenGL-8.0.lib
vtkRenderingVolume-8.0.lib
vtkRenderingVolumeOpenGL-8.0.lib
vtksqlite-8.0.lib
vtksys-8.0.lib
vtktiff-8.0.lib
vtkverdict-8.0.lib
vtkViewsContext2D-8.0.lib
vtkViewsCore-8.0.lib
vtkViewsInfovis-8.0.lib
vtkzlib-8.0.lib
opengl32.lib
点击属性管理器,在Release|x64右击,添加新项目属性表,取名VTKRelease64,如下图:
双击VTK,弹出属性页,左侧选中VC++目录,右侧包含目录添加如下路径(根据自己的路径一一对应起来)。
右侧库目录添加如下路径(根据自己的路径一一对应起来)
左侧点击链接器,再点输入,右侧找到附加依赖项,添加如下依赖项(直接复制粘贴)
vtkalglib-8.0.lib
vtkChartsCore-8.0.lib
vtkCommonColor-8.0.lib
vtkCommonComputationalGeometry-8.0.lib
vtkCommonCore-8.0.lib
vtkCommonDataModel-8.0.lib
vtkCommonExecutionModel-8.0.lib
vtkCommonMath-8.0.lib
vtkCommonMisc-8.0.lib
vtkCommonSystem-8.0.lib
vtkCommonTransforms-8.0.lib
vtkDICOMParser-8.0.lib
vtkDomainsChemistry-8.0.lib
vtkDomainsChemistryOpenGL2-8.0.lib
vtkexoIIc-8.0.lib
vtkexpat-8.0.lib
vtkFiltersAMR-8.0.lib
vtkFiltersCore-8.0.lib
vtkFiltersExtraction-8.0.lib
vtkFiltersFlowPaths-8.0.lib
vtkFiltersGeneral-8.0.lib
vtkFiltersGeneric-8.0.lib
vtkFiltersGeometry-8.0.lib
vtkFiltersHybrid-8.0.lib
vtkFiltersHyperTree-8.0.lib
vtkFiltersImaging-8.0.lib
vtkFiltersModeling-8.0.lib
vtkFiltersParallel-8.0.lib
vtkFiltersParallelImaging-8.0.lib
vtkFiltersPoints-8.0.lib
vtkFiltersProgrammable-8.0.lib
vtkFiltersSelection-8.0.lib
vtkFiltersSMP-8.0.lib
vtkFiltersSources-8.0.lib
vtkFiltersStatistics-8.0.lib
vtkFiltersTexture-8.0.lib
vtkFiltersTopology-8.0.lib
vtkFiltersVerdict-8.0.lib
vtkfreetype-8.0.lib
vtkGeovisCore-8.0.lib
vtkgl2ps-8.0.lib
vtkglew-8.0.lib
vtkGUISupportQt-8.0.lib
vtkGUISupportQtSQL-8.0.lib
vtkhdf5-8.0.lib
vtkhdf5_hl-8.0.lib
vtkImagingColor-8.0.lib
vtkImagingCore-8.0.lib
vtkImagingFourier-8.0.lib
vtkImagingGeneral-8.0.lib
vtkImagingHybrid-8.0.lib
vtkImagingMath-8.0.lib
vtkImagingMorphological-8.0.lib
vtkImagingSources-8.0.lib
vtkImagingStatistics-8.0.lib
vtkImagingStencil-8.0.lib
vtkInfovisCore-8.0.lib
vtkInfovisLayout-8.0.lib
vtkInteractionImage-8.0.lib
vtkInteractionStyle-8.0.lib
vtkInteractionWidgets-8.0.lib
vtkIOAMR-8.0.lib
vtkIOCore-8.0.lib
vtkIOEnSight-8.0.lib
vtkIOExodus-8.0.lib
vtkIOExport-8.0.lib
vtkIOExportOpenGL2-8.0.lib
vtkIOGeometry-8.0.lib
vtkIOImage-8.0.lib
vtkIOImport-8.0.lib
vtkIOInfovis-8.0.lib
vtkIOLegacy-8.0.lib
vtkIOLSDyna-8.0.lib
vtkIOMINC-8.0.lib
vtkIOMovie-8.0.lib
vtkIONetCDF-8.0.lib
vtkIOParallel-8.0.lib
vtkIOParallelXML-8.0.lib
vtkIOPLY-8.0.lib
vtkIOSQL-8.0.lib
vtkIOTecplotTable-8.0.lib
vtkIOVideo-8.0.lib
vtkIOXML-8.0.lib
vtkIOXMLParser-8.0.lib
vtkjpeg-8.0.lib
vtkjsoncpp-8.0.lib
vtklibharu-8.0.lib
vtklibxml2-8.0.lib
vtklz4-8.0.lib
vtkmetaio-8.0.lib
vtkNetCDF-8.0.lib
vtknetcdf_c++.lib
vtkoggtheora-8.0.lib
vtkParallelCore-8.0.lib
vtkpng-8.0.lib
vtkproj4-8.0.lib
vtkRenderingAnnotation-8.0.lib
vtkRenderingContext2D-8.0.lib
vtkRenderingContextOpenGL2-8.0.lib
vtkRenderingCore-8.0.lib
vtkRenderingFreeType-8.0.lib
vtkRenderingGL2PSOpenGL2-8.0.lib
vtkRenderingImage-8.0.lib
vtkRenderingLabel-8.0.lib
vtkRenderingLOD-8.0.lib
vtkRenderingOpenGL2-8.0.lib
vtkRenderingQt-8.0.lib
vtkRenderingVolume-8.0.lib
vtkRenderingVolumeOpenGL2-8.0.lib
vtksqlite-8.0.lib
vtksys-8.0.lib
vtktiff-8.0.lib
vtkverdict-8.0.lib
vtkViewsContext2D-8.0.lib
vtkViewsCore-8.0.lib
vtkViewsInfovis-8.0.lib
vtkViewsQt-8.0.lib
vtkzlib-8.0.lib
配置好后,有两个属性表文件
打开VS2015,新建一个工程Qt GUI Application,命名PCLVisualizer,建好后对应文件如图:
解决方案资源管理器中,双击下图UI文件
将QVTK拖进UI界面,调整大小,再上述菜单栏中依次输入File,按下回车确定,再分别输入Open回车、Exit回车确定,在主窗口布局可以选择垂直布局,保存退出。
回到VS2015,右键上述UI文件,先编译。
添加代码:
双击pclvisualizer.cpp:
#include <QFileDialog>
#include <iostream>
#include <vtkRenderWindow.h>
#include "pclvisualizer.h"
#include <QColorDialog>
#pragma execution_character_set("utf-8")
PCLVisualizer::PCLVisualizer(QWidget *parent)
: QMainWindow(parent)
{
ui.setupUi(this);
//初始化
initialVtkWidget();
//连接信号和槽
connect(ui.actionOpen, &QAction::triggered, this, &PCLVisualizer::onOpen);
connect(ui.actionExit, &QAction::triggered, this, &PCLVisualizer::exit);
}
PCLVisualizer::~PCLVisualizer()
{
}
void PCLVisualizer::initialVtkWidget()
{
cloud.reset(new pcl::PointCloud<pcl::PointXYZ>);
viewer.reset(new pcl::visualization::PCLVisualizer("viewer", false));
viewer->addPointCloud(cloud, "cloud");
ui.qvtkWidget->SetRenderWindow(viewer->getRenderWindow());
viewer->setupInteractor(ui.qvtkWidget->GetInteractor(), ui.qvtkWidget->GetRenderWindow());
ui.qvtkWidget->update();
}
//读取文本型和二进制型点云数据
void PCLVisualizer::onOpen()
{
//只能打开PCD文件
QString fileName = QFileDialog::getOpenFileName(this,
tr("Open PointCloud"), ".",
tr("Open PCD files(*.pcd)"));
if (!fileName.isEmpty())
{
std::string file_name = fileName.toStdString();
//sensor_msgs::PointCloud2 cloud2;
pcl::PCLPointCloud2 cloud2;
//pcl::PointCloud<Eigen::MatrixXf> cloud2;
Eigen::Vector4f origin;
Eigen::Quaternionf orientation;
int pcd_version;
int data_type;
unsigned int data_idx;
int offset = 0;
pcl::PCDReader rd;
rd.readHeader(file_name, cloud2, origin, orientation, pcd_version, data_type, data_idx);
if (data_type == 0)
{
pcl::io::loadPCDFile(fileName.toStdString(), *cloud);
}
else if (data_type == 2)
{
pcl::PCDReader reader;
reader.read<pcl::PointXYZ>(fileName.toStdString(), *cloud);
}
viewer->updatePointCloud(cloud, "cloud");
viewer->resetCamera();
ui.qvtkWidget->update();
}
}
void PCLVisualizer::exit()
{
this->close();
}
双击pclvisualizer.h:
#ifndef PCLVISUALIZER_H
#define PCLVISUALIZER_H
#include <vtkAutoInit.h>
VTK_MODULE_INIT(vtkRenderingOpenGL2);
VTK_MODULE_INIT(vtkInteractionStyle);
#include <QtWidgets/QMainWindow>
#include <pcl/io/pcd_io.h>
#include <pcl/point_types.h>
#include <pcl/visualization/pcl_visualizer.h>
#include "ui_pclvisualizer.h"
class PCLVisualizer : public QMainWindow
{
Q_OBJECT
public:
PCLVisualizer(QWidget *parent = 0);
~PCLVisualizer();
private:
Ui::PCLVisualizerClass ui;
//Ui::PCLVisualizerClass ui;
//点云数据存储
pcl::PointCloud<pcl::PointXYZ>::Ptr cloud;
boost::shared_ptr<pcl::visualization::PCLVisualizer> viewer;
//初始化vtk部件
void initialVtkWidget();
private slots:
//创建打开槽
void onOpen();
void exit();
//void setcolor();
};
#endif // PCLVISUALIZER_H
代码添加完成后还是有很多红色下划线的报错,还要添加之前新建的两个属性表:
修改项目属性(这步很重要,很多博客都没有这一步,导致出现问题不知道怎么解决),调试,修改工作目录和环境的路径
//工作目录(根据自己的目录)
E:\VTK8\vtk_bin\bin\Release
//环境,E:\VTK8\vtk_bin\bin\Release与工作目录一样
PATH=$(QTDIR)\bin%3b$(PATH);E:\VTK8\vtk_bin\bin\Release
百度网盘:https://pan.baidu.com/s/1zCTIWmD5CYAlBrG1q6j9nQ
提取码:kdi8
如果没有点云文件,提供一个点云文件:链接:https://pan.baidu.com/s/1iSMApxzvOv9tLfMVizEmaA 提取码:zfpk
(记得更改一下程序中你的PCD点云文件的路径)点击运行程序。
VS2015调试,出现下图所示窗体。
单击File–>Open,选择点云PCD文件,显示点云:
VS2015在Release模式下运行Qt GUI Application程序报错
在pclviewer.h中添加如下代码:
#include “vtkAutoInit.h”
VTK_MODULE_INIT(vtkRenderingOpenGL2);
VTK_MODULE_INIT(vtkInteractionStyle);
摘要:项目属性->调试-> 环境
选择编辑,添加PATH=<VTK路径>\bin$(OutDir);%PATH%,确定。之后再编译,发现问题解决。
当然,有时候,问题可能就是安装VTK或ITK的时候,Debug或Release不一致造成的。
所以VS中编译VTK和ITK的install工程时,记得统一成Debug或Release的。然后之后编译自己的工程时,也使用同样的配置。
此外,网上看到有人将属性->C/C+±>代码生成->运行库,选择错误也产生了同样的问题,提醒一下,一般Debug选用MDd,Release选用MD。
前在用VTK7.0版本配置的时候,在编译的时候成功了,但是最后的程序调试时就会发生以下错误:
配置了几次都是一样的错误,是VTK版本的问题,换成VTK8.0配置时就成功了。
warning LNK4099: 未找到 PDB“.pdb”正在链接对象,如同没有调试信息一样
解决方法:“视图”->“解决方案资源管理器”->“属性”->“链接器"->“调试”,在右侧的“生成调试信息”改为“否”,确定即可。
具体原因涉及到release和debug的区别,以及PDB文件,具体可百度了解。
在属性目录"C/C++ "– >“预处理器”–>“预处理器定义” 加入:
_SCL_SECURE_NO_WARNINGS
_CRT_SECURE_NO_WARNINGS
PCL_NO_PRECOMPILE
解决方法:“视图”->“解决方案资源管理器”->“属性”->“C/C++”->“SDL检查”:改为否(/sdl)
将VTK属性表里面的附加依赖项下面的删除:
vtkIOExportOpenGL-8.0.lib
vtkRenderingContextOpenGL-8.0.lib 1
vtkRenderingGL2PS-8.0.lib
vtkRenderingLIC-8.0.lib
vtkRenderingVolumeOpenGL-8.0.lib
vtkRenderingOpenGL-8.0.lib
最后:
希望祝愿大家能配置成功,有什么疑问可以留言。
1、【PCL点云处理】Win10+VS2015+PCL1.8.1+QT5.9.1+VTK8.0配置
2、详细的VTK VS QT配置 vtk8.2.0 + vs2017 + QT5.9.2
3、PCL+Qt+VS可视化点云
4、Qt5.9.4+VS2015 部署PCL1.8.1
5、CMake编译Qt程序+UI+Resources
6、【PCL点云库】Win10+VS2015+PCL1.8.1配置
文章浏览阅读2w次,点赞7次,收藏51次。四个步骤1.创建C++ Win32项目动态库dll 2.在Win32项目动态库中添加 外部依赖项 lib头文件和lib库3.导出C接口4.c#调用c++动态库开始你的表演...①创建一个空白的解决方案,在解决方案中添加 Visual C++ , Win32 项目空白解决方案的创建:添加Visual C++ , Win32 项目这......_c#调用lib
文章浏览阅读4.6k次。苹方字体是苹果系统上的黑体,挺好看的。注重颜值的网站都会使用,例如知乎:font-family: -apple-system, BlinkMacSystemFont, Helvetica Neue, PingFang SC, Microsoft YaHei, Source Han Sans SC, Noto Sans CJK SC, W..._ubuntu pingfang
文章浏览阅读159次。表单表单概述表单标签表单域按钮控件demo表单标签表单标签基本语法结构<form action="处理数据程序的url地址“ method=”get|post“ name="表单名称”></form><!--action,当提交表单时,向何处发送表单中的数据,地址可以是相对地址也可以是绝对地址--><!--method将表单中的数据传送给服务器处理,get方式直接显示在url地址中,数据可以被缓存,且长度有限制;而post方式数据隐藏传输,_html表单的处理程序有那些
文章浏览阅读1.2k次。使用说明:开启Google的登陆二步验证(即Google Authenticator服务)后用户登陆时需要输入额外由手机客户端生成的一次性密码。实现Google Authenticator功能需要服务器端和客户端的支持。服务器端负责密钥的生成、验证一次性密码是否正确。客户端记录密钥后生成一次性密码。下载谷歌验证类库文件放到项目合适位置(我这边放在项目Vender下面)https://github.com/PHPGangsta/GoogleAuthenticatorPHP代码示例://引入谷_php otp 验证器
文章浏览阅读4.3k次,点赞5次,收藏11次。matplotlib.plot画图横坐标混乱及间隔处理_matplotlib更改横轴间距
文章浏览阅读2.2k次。①Storage driver 处理各镜像层及容器层的处理细节,实现了多层数据的堆叠,为用户 提供了多层数据合并后的统一视图②所有 Storage driver 都使用可堆叠图像层和写时复制(CoW)策略③docker info 命令可查看当系统上的 storage driver主要用于测试目的,不建议用于生成环境。_docker 保存容器
文章浏览阅读834次,点赞27次,收藏13次。网络拓扑结构是指计算机网络中各组件(如计算机、服务器、打印机、路由器、交换机等设备)及其连接线路在物理布局或逻辑构型上的排列形式。这种布局不仅描述了设备间的实际物理连接方式,也决定了数据在网络中流动的路径和方式。不同的网络拓扑结构影响着网络的性能、可靠性、可扩展性及管理维护的难易程度。_网络拓扑csdn
文章浏览阅读1.8k次,点赞5次,收藏8次。IOS系统Date的坑要创建一个指定时间的new Date对象时,通常的做法是:new Date("2020-09-21 11:11:00")这行代码在 PC 端和安卓端都是正常的,而在 iOS 端则会提示 Invalid Date 无效日期。在IOS年月日中间的横岗许换成斜杠,也就是new Date("2020/09/21 11:11:00")通常为了兼容IOS的这个坑,需要做一些额外的特殊处理,笔者在开发的时候经常会忘了兼容IOS系统。所以就想试着重写Date函数,一劳永逸,避免每次ne_date.prototype 将所有 ios
文章浏览阅读5.3k次。方法一:用PLSQL Developer工具。 1 在PLSQL Developer的sql window里输入select * from test for update; 2 按F8执行 3 打开锁, 再按一下加号. 鼠标点到第一列的列头,使全列成选中状态,然后粘贴,最后commit提交即可。(前提..._excel导入pl/sql
文章浏览阅读83次。Git常用命令速查手册1、初始化仓库git init2、将文件添加到仓库git add 文件名 # 将工作区的某个文件添加到暂存区 git add -u # 添加所有被tracked文件中被修改或删除的文件信息到暂存区,不处理untracked的文件git add -A # 添加所有被tracked文件中被修改或删除的文件信息到暂存区,包括untracked的文件...
文章浏览阅读202次。分享119个ASP.NET源码总有一个是你想要的_千博二手车源码v2023 build 1120
文章浏览阅读1.8k次。版权声明:转载请注明出处 http://blog.csdn.net/irean_lau。目录(?)[+]1、缺省构造函数。2、缺省拷贝构造函数。3、 缺省析构函数。4、缺省赋值运算符。5、缺省取址运算符。6、 缺省取址运算符 const。[cpp] view plain copy_空类默认产生哪些类成员函数