NVIDIA+Windows系统下,如何编译依赖项,构建SLMaster的环境

前言

由于SLMaster所需依赖项的版本问题,我们最好使用Visual Studio 2019作为IDE,有关VS2019,CUDA,cuDNN,Git,Cmake,vcpkg等问题,可以参考我的这篇文章,因为SLMaster所需依赖项和COLMAP所需依赖项有一定重合,我们可以使用之前已经下载好的依赖项,最好是先看完我有关COLMAP配置的博客,把步骤全部做好,再根据本篇文章配置SLMaster

文章链接:NVIDIA显卡,Windows系统下,如何使用vcpkg管理依赖项,Cmake编译生成COLMAP的vs工程文件_vcpkg安装cuda-CSDN博客

博主本人其实也只配好了SLMaster的环境,能够生成gui相关的exe文件和所需dll文件,但是并没能成功运行起来SLMaster这个软件,由于其依赖项实在是太多,不知道是哪个环节出的问题,如果有知道的大佬欢迎私信如何解决问题

OpenCV及contrib库的编译

OpenCV官网:Releases - OpenCV

我们选择4.8.0,这里以我使用Windows的安装包为例,也可以去Github下载源码,问题不大

这里我把OpenCV解压到路径  E:\OpenCV  下,由于OpenCV本身还会创建一个名为opencv的文件夹,所以我的OpenCV最终路径在  E:\OpenCV\opencv  下,必须使用全英文路径,不然之后的编译必然出现问题

打开路径  E:\OpenCV\opencv,新建一个名为newbuild的文件夹

OpenCV的contrib库:https://github.com/opencv/opencv_contrib

编译contrib库一定要严格地一步一步地按照我说的步骤来,不然之后大概率会报错

千万不要直接点击此处的Code,再使用clone命令下载源码,这样你的contrib库根本不能编译成功,我在这里吃了个苦头,正确的做法是点击这个53 tags

直接把这个下载好的压缩包解压到路径  E:\OpenCV\opencv下,那么现在应该是这样

打开Cmake

源码路径和二进制文件构建路径我们这么填,填好点Configure

Configure里我们这么填,填好点Next

等待Configure完成,可能需要六七分钟左右

BUILD_opencv_world    OPENCV_ENABLE_NONFREE    WITH_CUDA    全部勾上

OPENCV_EXTRA_MODULES_PATH填  E:\OpenCV\opencv\opencv_contrib-4.8.0\modules

之后再次点击Configure

这一步Configure之后一般会报错,这时候我们往上翻Cmake输出记录,一般会提示缺少文件或者文件下载失败,会让我们去看  E:\OpenCV\opencv\newbuild\CMakeDownloadLog.txt

这里以全部下载完毕的为例

一般打开这个CMakeDownloadLog.txt后,会是一行行的#cmake_download "路径+文件名" "下载链接"

我们直接复制下载链接去下载所需文件,然后改成它#cmake_download中提示的文件名之后,再剪切到相应路径,注意如果不是压缩包zip这种格式的文件,而是一种纯文本格式的文件,例如后缀为.prototxt或者.i这种后缀名的文件,一定不要在txt中复制再改后缀名,而是直接进入下载链接后右键将网页另存为到相应路径,把所有缺少或下载失败的文件弄好后,再次在Cmake中点击Configure,直到Cmake输出记录全是白字,并且提示Configuring done后,我们再点击Generate

右键打开方式选择Microsoft Visual Studio 2019

打开VS2019,选择最上面生成-批生成

这四个勾上后点击生成,这一步可能需要四五个小时,具体看你机器的CPU多核性能和内存性能,慢慢等即可,只要你处理好了Cmake中的所有红字报错,之后应该VS2019中的所有生成都是成功的而且不会有失败的

全部生成成功后去环境变量-系统变量中新建变量,变量名为OpenCV_DIR,变量值为E:\OpenCV\opencv\newbuild,一定要点击确定!!!

Qt的下载与安装

Qt官网下载:Download Qt OSS: Get Qt Online Installer

先点击Archive,再点击筛选

选择Qt 5.15.1,这是SLMaster所要求的版本

Qt安装大概需要半个小时左右,安装期间可能会提示下载失败,只需点击重试即可

安装完毕后继续像OpenCV那样新建两个系统变量,变量名分别为Qt_DIR和Qt5_DIR,变量值一样,都为  E:\Qt\Qt_5.15.1_Suite\5.15.1\msvc2019_64\lib\cmake\Qt5,其中我的这个Qt_5.15.1_Suite文件夹为自己命名的,你想叫啥都可以,只要不含中文就行

VTK的编译

由于我们之前设置了OpenCV和Qt的系统变量,最好是重启机器后再来编译VTK,这样Cmake能够从系统变量中找到OpenCV和Qt的位置

VTK项目主页:GitHub - Kitware/VTK at v9.2.0

打开Cmake

源码路径和二进制文件构建路径我们这么填,填好点Configure

Configure里我们这么填,填好点Next

等待Configure完成,可能需要十分钟左右

CMAKE_INSTALL_PREFIX改一下,可以改到路径  E:\Git_Repositories\VTK\bin下

VTK_GROUP_ENABLE_Qt=YES

之后再次点击Configure

如果你重启了机器,Cmake会自动找到Qt5所在路径,如果没有重启,那就自己手动设置一下,继续点击Configure

点击Generate

右键打开方式选择Microsoft Visual Studio 2019

打开VS2019,选择最上面生成-批生成

这四个勾上后点击生成,这一步可能需要三四个小时,具体看你机器的CPU多核性能和内存性能,慢慢等即可,之后应该VS2019中的所有生成都是成功的而且不会有失败的

全部生成成功后去环境变量-系统变量中新建变量,变量名为VTK_DIR,变量值为E:\Git_Repositories\VTK\build

PCL的安装与编译

由于我们之前设置了OpenCV、Qt和VTK的系统变量,最好是重启机器后再来编译PCL,这样Cmake能够从系统变量中找到OpenCV、Qt和VTK的位置

PCL安装页面:Releases · PointCloudLibrary/pcl · GitHub

找到PCL-1.12.1-AllInOne-msvc2019-win64.exe点击下载,下好后安装,安装完成后删除PCL安装文件夹下的除3rdParty外的其它任何文件,并将3rdParty文件夹中的VTK文件夹删除

PCL项目主页:GitHub - PointCloudLibrary/pcl at pcl-1.12.1

注意,这一步之前一定要删除PCL安装文件夹下的除3rdParty外的其它任何文件,并将3rdParty文件夹中的VTK文件夹删除,不然后续必报错

打开Cmake

源码路径和二进制文件构建路径我们这么填,填好点Configure

Configure里我们这么填,填好点Next

用我们在COLMAP项目中配好各种依赖项的的vcpkg,如果你之前没这么做请你去看看我的这篇文章,保证你后续编译不会出错的

文章链接:NVIDIA显卡,Windows系统下,如何使用vcpkg管理依赖项,Cmake编译生成COLMAP的vs工程文件_vcpkg安装cuda-CSDN博客

等待Configure完成,可能需要一分钟左右

CMAKE_INSTALL_PREFIX改一下,可以改到路径  E:\Git_Repositories\pcl\bin下

Cmake如果没找到Qt或VTK的路径,那就是你在我说重启的时候没有重启,你要自己找到路径手动设置一下,同时Cmake也可能会找错Qt的路径,将Qt的路径找到vcpkg中Qt的路径去,如果找错,我们需要手动改一改,改成我们Qt 5.15.1的安装路径

之后再次点击Configure

点击Generate

右键打开方式选择Microsoft Visual Studio 2019

打开VS2019,选择最上面生成-批生成

这四个勾上后点击生成,这一步可能需要三四个小时,具体看你机器的CPU多核性能和内存性能,慢慢等即可,之后应该VS2019中的所有生成都是成功的而且不会有失败的

全部生成成功后去环境变量-系统变量中新建变量,变量名为PCL_DIR,变量值为E:\Git_Repositories\pcl\bin\cmake

SLMaster的编译

由于我们之前设置了OpenCV、Qt、VTK和PCL的系统变量,最好是重启机器后再来编译SLMaster,这样Cmake能够从系统变量中找到OpenCV、Qt、VTK和PCL的位置

SLMaster项目主页:GitHub - Practice3DVision/SLMaster: SLMaster is a relatively complete open-source Structured Light 3D camera software. You can use it to complete a series of operations including calibration, stripe encoding, 3D reconstruction, and point cloud post-processing. Welcome Star⭐ And Fork🍴.

你可以直接点击右下角的Releases直接安装SLMaster软件使用,但是这样你看不到它的源码,项目结构等细节

打开Cmake

源码路径和二进制文件构建路径我们这么填,填好点Configure

Configure里我们这么填,填好点Next

用我们在COLMAP项目中配好各种依赖项的的vcpkg,如果你之前没这么做请你去看看我的这篇文章,保证你后续编译不会出错的

文章链接:NVIDIA显卡,Windows系统下,如何使用vcpkg管理依赖项,Cmake编译生成COLMAP的vs工程文件_vcpkg安装cuda-CSDN博客

等待Configure完成,可能需要一分钟左右

CMAKE_INSTALL_PREFIX改一下,可以改到路径  E:\Git_Repositories\SLMaster\bin下

Cmake如果没找到Qt、VTK或PCL的路径,那就是你在我说重启的时候没有重启,你要自己找到路径手动设置一下,同时Cmake也可能会找错Qt的路径,将Qt的路径找到vcpkg中Qt的路径去,如果找错,我们需要手动改一改,改成我们Qt 5.15.1的安装路径

之后再次点击Configure

点击Generate

右键打开方式选择Microsoft Visual Studio 2019

打开VS2019,选择最上面生成-批生成

这四个勾上后点击生成,这一步可能需要一两个小时,具体看你机器的CPU多核性能和内存性能,慢慢等即可,之后应该VS2019中的所有生成都是成功的而且不会有失败的

全部生成成功后去打开路径  E:\Git_Repositories\SLMaster\build\gui

右键打开方式选择Microsoft Visual Studio 2019

打开VS2019,选择最上面生成-批生成

这四个勾上后点击生成,这一步可能需要一两个小时,具体看你机器的CPU多核性能和内存性能,慢慢等即可,之后应该VS2019中的所有生成都是成功的而且不会有失败的

出现且一直没有解决的问题

全部生成成功后去打开路径  E:\Git_Repositories\SLMaster\build\gui\Debug

双击SLMasterGui.exe后提示缺dll,我把能复制进来的dll全复制后提示

无法定位程序输入点?getStream@StreamAccessof@cuda@cv@@SAPEAUCUstream_st@@AEBVStream@23@@Z于动态链接库E:\Git_Repositories\SLMaster\build\gui\Debug\SLMasterGui.exe上

无法定位程序输入点?vulkanInstance@QWindow@@QEBAPEAVQVulkanInstance@@XZ于动态链接库E:\Qt\Qt_5.15.14_Suite\5.15.1\msvc2019_64\bin\Qt5Quickd.dll上

无法定位程序输入点z_inflate于动态链接库E:\Qt\Qt_5.15.14_Suite\5.15.1\msvc2019_64\bin\Qt5Networkd.dll上

博主目前就这些问题没解决,如有大佬会解决的可以评论或私信互相帮助帮助,感激不尽!!!

  • 12
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值