工程环境配置 使用QT+PCL点云可视化 QT5.7.1 + VTK8.2.0 + PCL1.11.0 + VS2019 + OpenCV4.3.0 +Cmake3.18.0

QT5.7.1 + VTK8.2.0 + PCL1.11.0 + VS2019 + OpenCV4.3.0 +Cmake3.18.0
由于需要使用QVTKWidget在QT交互界面里进行显示,但是PCL自带的第三方库里的VTK不包含这个插件,所以需要使用独立的VTK,在编译VTK源码时,需要勾选 Module_vtkGUISupportQt,Module_vtkGUISupportQtOpenGL,VTK_Group_Qt。

一、CMakeLists.txt及工程配置

用安装包安装PCL,但是使用find_package 这一套命令(如下所示),在Cmake中自动包含PCL的头文件、链接lib等,会导致VTK的头文件包含不进来。也就是说下面这样的写法,会导致VTK的头文件无法包含全,导致无法使用

....
find_package(VTK REQUIRED)
include(${VTK_USE_FILE})
link_directories(${VTK_LIBRARY_DIRS})

find_package(PCL 1.3 REQUIRED COMPONENTS common io)     
include_directories(${PCL_INCLUDE_DIRS})                
link_directories(${PCL_LIBRARY_DIRS})                 
add_definitions(${PCL_DEFINITIONS}) 

....

TARGET_LINK_LIBRARIES( ProjectName ... ${VTK_LIBRARIES} ${PCL_LIBRARIES}...)

CmakeLists.txt 如下:

cmake_minimum_required(VERSION 2.8)
PROJECT(scan3d-capture)
set(CMAKE_AUTOMOC ON)

#QT
find_package(Qt5Widgets) 
find_package(Qt5Core)
find_package(Qt5Gui)
find_package(Qt5OpenGL)
Set (BASEDIR "D:/projects/3DReconstruction/uiFile")#设置此路径为UI文件所在的文件夹
FILE(GLOB UI_FILES "${BASEDIR}/*.ui")
qt5_wrap_ui(WRAP_FILES ${UI_FILES})
source_group("Ui" FILES ${UI_FILES} ${WRAP_FILES} )

#opencv
FIND_PACKAGE(OpenCV  REQUIRED)
include_directories( ${OPENCV_INCLUDE_DIR} )
#vtk
find_package(VTK REQUIRED)
include(${VTK_USE_FILE})
link_directories(${VTK_LIBRARY_DIRS})

#PCL

set (PCL_Root_Path "D:\\Toolkit\\PCL\ 1.11.0")#设置为PCL的根目录

#设置PCL及第三方库头文件所在目录。因为我们使用独立的VTK,所以没有包含PCL自带的VTK的头文件。
set(BOOST_Head_File_Path "${PCL_Root_Path}\\3rdParty\\Boost\\include\\boost-1_73")
set (Qhull_Head_File_Path "${PCL_Root_Path}\\3rdParty\\Qhull\\include")
set (OpenNI2_Head_File_Path "${PCL_Root_Path}\\3rdParty\\OpenNI2\\Include")
set (FLANN_Head_File_Path "${PCL_Root_Path}\\3rdParty\\FLANN\\include")
set (Eigen_Head_File_Path "${PCL_Root_Path}\\3rdParty\\Eigen\\eigen3")
set (PCL_Head_File_Path "${PCL_Root_Path}\\include\\pcl-1.11")


include_directories(${BOOST_Head_File_Path} ${Qhull_Head_File_Path} ${OpenNI2_Head_File_Path} ${FLANN_Head_File_Path} ${Eigen_Head_File_Path} ${PCL_Head_File_Path})

#设置PCL及第三方库lib所在目录。因为我们使用独立的VTK,所以没有包含PCL自带的VTK的lib。
set(BOOST_Lib_Path "${PCL_Root_Path}\\3rdParty\\Boost\\lib")
set (Qhull_Lib_Path "${PCL_Root_Path}\\3rdParty\\Qhull\\lib")
set (OpenNI2_Lib_Path "${PCL_Root_Path}\\3rdParty\\OpenNI2\\Lib")
set (FLANN_Lib_Path "${PCL_Root_Path}\\3rdParty\\FLANN\\lib")
set (PCL_Lib_Path "${PCL_Root_Path}\\lib")
link_directories(${BOOST_Lib_Path} ${Qhull_Lib_Path} ${OpenNI2_Lib_Path} ${FLANN_Lib_Path} ${PCL_Lib_Path})

#把项目所有的头文件和源文件建立工程
FILE(GLOB SRC_FILES "./*.cpp")
FILE(GLOB HEAD_FILES "./*.hpp")

ADD_EXECUTABLE(scan3d-capture ${SRC_FILES} ${HEAD_FILES} ${RCC_FILES} ${WRAP_FILES} ${QRC_FILES} ${app_ICON})

#链接所使用的第三方库的lib。此处没有链接PCL,需要在VS里面手动链接,否则会出现无法解析的外部符号的错误。
TARGET_LINK_LIBRARIES( scan3d-capture
	${OpenCV_LIBS} ${VTK_LIBRARIES} Qt5::OpenGL Qt5::Widgets Qt5::Core Qt5::Gui)

手动链接PCL的lib文件:我们在Cmake中指定了库目录,也就是lib文件所在的目录,所以,我们在这里只需要把lib文件的文件名放在附加依赖项中就可以了,不需要指明它具体在哪个目录里面。

我们首先找到PCL所有的lib文件名,文件有很多,我也把(文件名列表附在了本文结尾),把所有lib文件名复制到红框里。注意,debug和release模式下,包含的lib是不一样的,需要把对应模式下的lib文件复制到红框里。一般debug的lib后面会都一个字母’d’

检查你的lib文件和我给出的静态链接库版本一不一样,如果不一样,需要按照下述方法重新获取。

属性–》链接器–》输入–》附加依赖项:
工程环境配置 使用QT+PCL点云可视化 QT5.7.1 + VTK8.2.0 + PCL1.11.0 + VS2019 + OpenCV4.3.0 +Cmake3.18.0_第1张图片
获取lib文件列表方法:
参考:https://blog.csdn.net/weixin_41991128/article/details/83864713

win+r调出“运行”窗口并输出cmd
输入:cd /d D:\P_pcl\PCL1.9.0\PCL 1.9.0\3rdParty\VTK\lib 回车 (填自己的路径)
输入:dir /b *.lib *>0.txt 回车 

这样当前目录下所有lib文件名都写入了0.txt文件中,但是release和debug版本的链接库时紧挨着放置的,需要按照如下链接所述方法,将0.txt文件中的奇数行和偶数行分别存储到两个不同的文件中,再根据你的编译模式,把对应的lib复制到附加依赖项中。

链接: https://blog.csdn.net/weixin_41991128/article/details/83965051.

这里还有一个bug,如果环境变量里面, vtk debug目录在release 目录之上,那么程序会首先在debug目录里寻找动态链接库,如果使用了QVTKWidget,这时候relase模式下,就会出现如下错误。如果release在debug之上,则debug模式下,会出现这个错误。
我自己的经验表示,如果我们不使用QVTKWidget控件,则不会出现这个错误。
QWidget: Must construct a QApplication before a QWidget
工程环境配置 使用QT+PCL点云可视化 QT5.7.1 + VTK8.2.0 + PCL1.11.0 + VS2019 + OpenCV4.3.0 +Cmake3.18.0_第2张图片

解决方案:
方案一(推荐):在使用debug模式时,把环境变量中的vtk的release的dll所在路径去掉,在使用relase模式时,把环境变量中vtk的bebug的dll所在路径去掉。

方案二:把vtk编译debug目录放在release之前,并且在relase模式下,需要把所有QT的lib文件改为debug版本的lib,即在附加依赖项里面找到所有的QT相关的lib, 一般为:

D:\Toolkit\QT_5.7.1\QT_5.7.1\5.7\msvc2015_64\lib\Qt5Widgets.lib
D:\Toolkit\QT_5.7.1\QT_5.7.1\5.7\msvc2015_64\lib\Qt5Gui.lib
D:\Toolkit\QT_5.7.1\QT_5.7.1\5.7\msvc2015_64\lib\Qt5Core.lib
D:\Toolkit\QT_5.7.1\QT_5.7.1\5.7\msvc2015_64\lib\Qt5Sql.lib
D:\Toolkit\QT_5.7.1\QT_5.7.1\5.7\msvc2015_64\lib\Qt5OpenGL.lib

修改为

D:\Toolkit\QT_5.7.1\QT_5.7.1\5.7\msvc2015_64\lib\Qt5Widgetsd.lib
D:\Toolkit\QT_5.7.1\QT_5.7.1\5.7\msvc2015_64\lib\Qt5Guid.lib
D:\Toolkit\QT_5.7.1\QT_5.7.1\5.7\msvc2015_64\lib\Qt5Cored.lib
D:\Toolkit\QT_5.7.1\QT_5.7.1\5.7\msvc2015_64\lib\Qt5Sqld.lib
D:\Toolkit\QT_5.7.1\QT_5.7.1\5.7\msvc2015_64\lib\Qt5OpenGLd.lib

虽然此方法能解决上述提到的这个问题,但是不推荐此解决方案,毕竟你在release模式下调用了QT的debug版本的库,可能会出现一些奇奇怪怪的错误。

二、使用QT+PCL显示点云

使用QVTKWidget 和pcl::visualization::PCLVisualizer .

必须QVTKWidget会出现如下警告,也就是说QVTKWidget 会在未来的版本中删除:
工程环境配置 使用QT+PCL点云可视化 QT5.7.1 + VTK8.2.0 + PCL1.11.0 + VS2019 + OpenCV4.3.0 +Cmake3.18.0_第3张图片
一般我们需要使用QVTKOpenGLNativeWidget代替QVTKWidget,对应的,也需要用vtkGenericOpenGLRenderWindow代替vtkRenderWindow,但是pcl::visualization::PCLVisualizer只支持QVTKWidget,我们只能使用QVTKWidget。

第一步:
首先在UI界面里添加一个QVTKWidget插件。
在QTDesigner中添加QVTKWidget的方法如下链接所示:https://blog.csdn.net/u012135461/article/details/77833316

第二步:

在类中,比如MainWindow 中添加 私有成员变量

class MainWindow : public QMainWindow
{
Q_OBJECT

....
private:
pcl::visualization::PCLVisualizer::Ptr viewer;
}

在MainWindow中初始化 viewer:

MainWindow ::MainWindow ()
{
	....
	
	//假设我们在UI中添加的QVTKWidget的控件名称为VTKWidget。
	 viewer.reset(new pcl::visualization::PCLVisualizer("viewer", false));
    ui->VTKWidget->SetRenderWindow(viewer->getRenderWindow());
    viewer->setupInteractor(ui->VTKWidget->GetInteractor(), ui->VTKWidget->GetRenderWindow());
    
    ....
    
    }

在某个按钮的槽函数里面(或者其他你想要显示点云的地方) 添加如下代码:

void MainWindow::_on_showpointclod()
{
	pcl::PointCloud<pcl::PointXYZRGB>::Ptr cloud(new pcl::PointCloud<pcl::PointXYZRGB>);
	//读取点云(ply格式)
    if (pcl::io::loadPLYFile<pcl::PointXYZRGB>(FilePath, *cloud) == -1) //* load the file 
      {
          std::string ErrorMessage = "Couldn't read file: ";
          PCL_ERROR((ErrorMessage + FilePath).c_str());

      }
      else
      {
      	//如果载入成功,将读取的点云添加到Viewer中。
     	 viewer->removeAllPointClouds();//移除所有已经在viewer中的点云
         viewer->addPointCloud<pcl::PointXYZRGB>(cloud, "cloud");
         viewer->addCoordinateSystem(1.0);  //添加坐标系
         viewer->resetCamera();

         ui->VTKWidget->show();
         ui->VTKWidget->update();
       }
  }

上述只将点云进行了简单的显示,更复杂的显示方法如下链接所示:
https://blog.csdn.net/u013019296/article/details/70052312

读取PLY

#include 
#include 
#include 
 
void main()
{
   pcl::PLYReader reader;
   pcl::PointCloud<pcl::PointXYZ>::Ptr cloud(new pcl::PointCloud<pcl::PointXYZ>);
   reader.read<pcl::PointXYZ>("demo.ply", *cloud);
}

读取pcd

#include 
#include 
#include 
 
void main()
{
   pcl::PCDReader reader;
   pcl::PointCloud<pcl::PointXYZ>::Ptr cloud(new pcl::PointCloud<pcl::PointXYZ>);
   reader.read<pcl::PointXYZ>("demo.ply", *cloud);
}

读取obj
参考:https://www.cnblogs.com/BambooEatPanda/p/8149922.html

	pcl::PolygonMesh mesh;
    pcl::io::loadPolygonFile("sofa.obj", mesh);
 
    pcl::PointCloud<pcl::PointXYZ>::Ptr cloud(new pcl::PointCloud<pcl::PointXYZ>);
    pcl::fromPCLPointCloud2(mesh.cloud, *cloud);
    pcl::io::savePCDFileASCII("result.pcd", *cloud);  //将点云存储为pcd文件

从CAD模型(STL,obj)载入点云,由于这些模型一般只包含顶点,如果需要载入点云,就需要在每一个mesh面上均匀采样
参考链接:[https://blog.csdn.net/rocachilles/article/details/89397212]
(https://blog.csdn.net/rocachilles/article/details/89397212)

最终显示效果如下,中间窗口是使用PCL的viewer类来进行显示的:
工程环境配置 使用QT+PCL点云可视化 QT5.7.1 + VTK8.2.0 + PCL1.11.0 + VS2019 + OpenCV4.3.0 +Cmake3.18.0_第4张图片

希望你能够有所收获!!!

附录: PCL lib 文件名列表

这里只包含了 pcl 以及 第三方库:Boost 和 OpenNI2的lib。由于我们使用的独立的vtk, 在cmake 中用 target_link_libraries{ProjectName … ${VTK_LIBRARIES} … } 早已链接了vtk所有lib文件,这里不用重复链接。
debug:

pcl_commond.lib
pcl_featuresd.lib
pcl_filtersd.lib
pcl_iod.lib
pcl_io_plyd.lib
pcl_kdtreed.lib
pcl_keypointsd.lib
pcl_mld.lib
pcl_octreed.lib
pcl_outofcored.lib
pcl_peopled.lib
pcl_recognitiond.lib
pcl_registrationd.lib
pcl_sample_consensusd.lib
pcl_searchd.lib
pcl_segmentationd.lib
pcl_stereod.lib
pcl_surfaced.lib
pcl_trackingd.lib
pcl_visualizationd.lib
pcl_commond.lib
pcl_featuresd.lib
pcl_filtersd.lib
pcl_iod.lib
pcl_io_plyd.lib
pcl_kdtreed.lib
pcl_keypointsd.lib
pcl_mld.lib
pcl_octreed.lib
pcl_outofcored.lib
pcl_peopled.lib
pcl_recognitiond.lib
pcl_registrationd.lib
pcl_sample_consensusd.lib
pcl_searchd.lib
pcl_segmentationd.lib
pcl_stereod.lib
pcl_surfaced.lib
pcl_trackingd.lib
pcl_visualizationd.lib

libboost_atomic-vc142-mt-gd-x64-1_73.lib
libboost_bzip2-vc142-mt-gd-x64-1_73.lib
libboost_chrono-vc142-mt-gd-x64-1_73.lib
libboost_container-vc142-mt-gd-x64-1_73.lib
libboost_context-vc142-mt-gd-x64-1_73.lib
libboost_contract-vc142-mt-gd-x64-1_73.lib
libboost_coroutine-vc142-mt-gd-x64-1_73.lib
libboost_date_time-vc142-mt-gd-x64-1_73.lib
libboost_exception-vc142-mt-gd-x64-1_73.lib
libboost_fiber-vc142-mt-gd-x64-1_73.lib
libboost_filesystem-vc142-mt-gd-x64-1_73.lib
libboost_graph-vc142-mt-gd-x64-1_73.lib
libboost_graph_parallel-vc142-mt-gd-x64-1_73.lib
libboost_iostreams-vc142-mt-gd-x64-1_73.lib
libboost_locale-vc142-mt-gd-x64-1_73.lib
libboost_log-vc142-mt-gd-x64-1_73.lib
libboost_log_setup-vc142-mt-gd-x64-1_73.lib
libboost_math_c99-vc142-mt-gd-x64-1_73.lib
libboost_math_c99f-vc142-mt-gd-x64-1_73.lib
libboost_math_c99l-vc142-mt-gd-x64-1_73.lib
libboost_math_tr1-vc142-mt-gd-x64-1_73.lib
libboost_math_tr1f-vc142-mt-gd-x64-1_73.lib
libboost_math_tr1l-vc142-mt-gd-x64-1_73.lib
libboost_mpi-vc142-mt-gd-x64-1_73.lib
libboost_nowide-vc142-mt-gd-x64-1_73.lib
libboost_numpy38-vc142-mt-gd-x64-1_73.lib
libboost_prg_exec_monitor-vc142-mt-gd-x64-1_73.lib
libboost_program_options-vc142-mt-gd-x64-1_73.lib
libboost_python38-vc142-mt-gd-x64-1_73.lib
libboost_random-vc142-mt-gd-x64-1_73.lib
libboost_regex-vc142-mt-gd-x64-1_73.lib
libboost_serialization-vc142-mt-gd-x64-1_73.lib
libboost_stacktrace_noop-vc142-mt-gd-x64-1_73.lib
libboost_stacktrace_windbg-vc142-mt-gd-x64-1_73.lib
libboost_stacktrace_windbg_cached-vc142-mt-gd-x64-1_73.lib
libboost_system-vc142-mt-gd-x64-1_73.lib
libboost_test_exec_monitor-vc142-mt-gd-x64-1_73.lib
libboost_thread-vc142-mt-gd-x64-1_73.lib
libboost_timer-vc142-mt-gd-x64-1_73.lib
libboost_type_erasure-vc142-mt-gd-x64-1_73.lib
libboost_unit_test_framework-vc142-mt-gd-x64-1_73.lib
libboost_wave-vc142-mt-gd-x64-1_73.lib
libboost_wserialization-vc142-mt-gd-x64-1_73.lib
libboost_zlib-vc142-mt-gd-x64-1_73.lib
libboost_atomic-vc142-mt-gd-x64-1_73.lib
libboost_bzip2-vc142-mt-gd-x64-1_73.lib
libboost_chrono-vc142-mt-gd-x64-1_73.lib
libboost_container-vc142-mt-gd-x64-1_73.lib
libboost_context-vc142-mt-gd-x64-1_73.lib
libboost_contract-vc142-mt-gd-x64-1_73.lib
libboost_coroutine-vc142-mt-gd-x64-1_73.lib
libboost_date_time-vc142-mt-gd-x64-1_73.lib
libboost_exception-vc142-mt-gd-x64-1_73.lib
libboost_fiber-vc142-mt-gd-x64-1_73.lib
libboost_filesystem-vc142-mt-gd-x64-1_73.lib
libboost_graph-vc142-mt-gd-x64-1_73.lib
libboost_graph_parallel-vc142-mt-gd-x64-1_73.lib
libboost_iostreams-vc142-mt-gd-x64-1_73.lib
libboost_locale-vc142-mt-gd-x64-1_73.lib
libboost_log-vc142-mt-gd-x64-1_73.lib
libboost_log_setup-vc142-mt-gd-x64-1_73.lib
libboost_math_c99-vc142-mt-gd-x64-1_73.lib
libboost_math_c99f-vc142-mt-gd-x64-1_73.lib
libboost_math_c99l-vc142-mt-gd-x64-1_73.lib
libboost_math_tr1-vc142-mt-gd-x64-1_73.lib
libboost_math_tr1f-vc142-mt-gd-x64-1_73.lib
libboost_math_tr1l-vc142-mt-gd-x64-1_73.lib
libboost_mpi-vc142-mt-gd-x64-1_73.lib
libboost_nowide-vc142-mt-gd-x64-1_73.lib
libboost_numpy38-vc142-mt-gd-x64-1_73.lib
libboost_prg_exec_monitor-vc142-mt-gd-x64-1_73.lib
libboost_program_options-vc142-mt-gd-x64-1_73.lib
libboost_python38-vc142-mt-gd-x64-1_73.lib
libboost_random-vc142-mt-gd-x64-1_73.lib
libboost_regex-vc142-mt-gd-x64-1_73.lib
libboost_serialization-vc142-mt-gd-x64-1_73.lib
libboost_stacktrace_noop-vc142-mt-gd-x64-1_73.lib
libboost_stacktrace_windbg-vc142-mt-gd-x64-1_73.lib
libboost_stacktrace_windbg_cached-vc142-mt-gd-x64-1_73.lib
libboost_system-vc142-mt-gd-x64-1_73.lib
libboost_test_exec_monitor-vc142-mt-gd-x64-1_73.lib
libboost_thread-vc142-mt-gd-x64-1_73.lib
libboost_timer-vc142-mt-gd-x64-1_73.lib
libboost_type_erasure-vc142-mt-gd-x64-1_73.lib
libboost_unit_test_framework-vc142-mt-gd-x64-1_73.lib
libboost_wave-vc142-mt-gd-x64-1_73.lib
libboost_wserialization-vc142-mt-gd-x64-1_73.lib
libboost_zlib-vc142-mt-gd-x64-1_73.lib

OpenNI2.lib

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
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_73.lib
libboost_bzip2-vc142-mt-x64-1_73.lib
libboost_chrono-vc142-mt-x64-1_73.lib
libboost_container-vc142-mt-x64-1_73.lib
libboost_context-vc142-mt-x64-1_73.lib
libboost_contract-vc142-mt-x64-1_73.lib
libboost_coroutine-vc142-mt-x64-1_73.lib
libboost_date_time-vc142-mt-x64-1_73.lib
libboost_exception-vc142-mt-x64-1_73.lib
libboost_fiber-vc142-mt-x64-1_73.lib
libboost_filesystem-vc142-mt-x64-1_73.lib
libboost_graph-vc142-mt-x64-1_73.lib
libboost_graph_parallel-vc142-mt-x64-1_73.lib
libboost_iostreams-vc142-mt-x64-1_73.lib
libboost_locale-vc142-mt-x64-1_73.lib
libboost_log-vc142-mt-x64-1_73.lib
libboost_log_setup-vc142-mt-x64-1_73.lib
libboost_math_c99-vc142-mt-x64-1_73.lib
libboost_math_c99f-vc142-mt-x64-1_73.lib
libboost_math_c99l-vc142-mt-x64-1_73.lib
libboost_math_tr1-vc142-mt-x64-1_73.lib
libboost_math_tr1f-vc142-mt-x64-1_73.lib
libboost_math_tr1l-vc142-mt-x64-1_73.lib
libboost_mpi-vc142-mt-x64-1_73.lib
libboost_nowide-vc142-mt-x64-1_73.lib
libboost_numpy38-vc142-mt-x64-1_73.lib
libboost_prg_exec_monitor-vc142-mt-x64-1_73.lib
libboost_program_options-vc142-mt-x64-1_73.lib
libboost_python38-vc142-mt-x64-1_73.lib
libboost_random-vc142-mt-x64-1_73.lib
libboost_regex-vc142-mt-x64-1_73.lib
libboost_serialization-vc142-mt-x64-1_73.lib
libboost_stacktrace_noop-vc142-mt-x64-1_73.lib
libboost_stacktrace_windbg-vc142-mt-x64-1_73.lib
libboost_stacktrace_windbg_cached-vc142-mt-x64-1_73.lib
libboost_system-vc142-mt-x64-1_73.lib
libboost_test_exec_monitor-vc142-mt-x64-1_73.lib
libboost_thread-vc142-mt-x64-1_73.lib
libboost_timer-vc142-mt-x64-1_73.lib
libboost_type_erasure-vc142-mt-x64-1_73.lib
libboost_unit_test_framework-vc142-mt-x64-1_73.lib
libboost_wave-vc142-mt-x64-1_73.lib
libboost_wserialization-vc142-mt-x64-1_73.lib
libboost_zlib-vc142-mt-x64-1_73.lib
libboost_atomic-vc142-mt-x64-1_73.lib
libboost_bzip2-vc142-mt-x64-1_73.lib
libboost_chrono-vc142-mt-x64-1_73.lib
libboost_container-vc142-mt-x64-1_73.lib
libboost_context-vc142-mt-x64-1_73.lib
libboost_contract-vc142-mt-x64-1_73.lib
libboost_coroutine-vc142-mt-x64-1_73.lib
libboost_date_time-vc142-mt-x64-1_73.lib
libboost_exception-vc142-mt-x64-1_73.lib
libboost_fiber-vc142-mt-x64-1_73.lib
libboost_filesystem-vc142-mt-x64-1_73.lib
libboost_graph-vc142-mt-x64-1_73.lib
libboost_graph_parallel-vc142-mt-x64-1_73.lib
libboost_iostreams-vc142-mt-x64-1_73.lib
libboost_locale-vc142-mt-x64-1_73.lib
libboost_log-vc142-mt-x64-1_73.lib
libboost_log_setup-vc142-mt-x64-1_73.lib
libboost_math_c99-vc142-mt-x64-1_73.lib
libboost_math_c99f-vc142-mt-x64-1_73.lib
libboost_math_c99l-vc142-mt-x64-1_73.lib
libboost_math_tr1-vc142-mt-x64-1_73.lib
libboost_math_tr1f-vc142-mt-x64-1_73.lib
libboost_math_tr1l-vc142-mt-x64-1_73.lib
libboost_mpi-vc142-mt-x64-1_73.lib
libboost_nowide-vc142-mt-x64-1_73.lib
libboost_numpy38-vc142-mt-x64-1_73.lib
libboost_prg_exec_monitor-vc142-mt-x64-1_73.lib
libboost_program_options-vc142-mt-x64-1_73.lib
libboost_python38-vc142-mt-x64-1_73.lib
libboost_random-vc142-mt-x64-1_73.lib
libboost_regex-vc142-mt-x64-1_73.lib
libboost_serialization-vc142-mt-x64-1_73.lib
libboost_stacktrace_noop-vc142-mt-x64-1_73.lib
libboost_stacktrace_windbg-vc142-mt-x64-1_73.lib
libboost_stacktrace_windbg_cached-vc142-mt-x64-1_73.lib
libboost_system-vc142-mt-x64-1_73.lib
libboost_test_exec_monitor-vc142-mt-x64-1_73.lib
libboost_thread-vc142-mt-x64-1_73.lib
libboost_timer-vc142-mt-x64-1_73.lib
libboost_type_erasure-vc142-mt-x64-1_73.lib
libboost_unit_test_framework-vc142-mt-x64-1_73.lib
libboost_wave-vc142-mt-x64-1_73.lib
libboost_wserialization-vc142-mt-x64-1_73.lib
libboost_zlib-vc142-mt-x64-1_73.lib

OpenNI2.lib

谢谢,希望你能够有所收获!!欢迎讨论!

你可能感兴趣的:(cmake,qt)