- 写于 2024/01/26
目录
一、配置前的准备
1.CMake
具体安装请参阅:
Windows下的CMake详细安装教程(2024/1/24)-CSDN博客
2.Vcpkg
具体安装请参阅:
C/C++的包管理——Vcpkg(2024/01/25)-CSDN博客
3.Visual Studio要修改带有【英语】语言
具体方式请阅读:
C/C++的包管理——Vcpkg(2024/01/25)-CSDN博客
4.设置环境变量(option)
①右键点击【此电脑】,选择【属性】-->【高级系统设置】
②选择【环境变量】
③在系统变量中点击【新建】,设置好下图所示【变量名】和【变量值】,点击【确定】
5.cuda(option)
建议安装上,否则应在openMVS的CmakeLists.txt中禁用cuda
具体安装请参阅:
Windows下的CUDA与cuDNN详细安装教程(2024/01/26)-CSDN博客
二、安装依赖库及过程问题总结
前提:Vcpkg已集成到VS
1.安装依赖库
①在Vcpkg的安装根目录,右键打开终端
②运行下面的安装命令
.\vcpkg install zlib:x64-windows boost:x64-windows eigen3:x64-windows ceres:x64-windows opencv:x64-windows cgal:x64-windows glew:x64-windows glfw3:x64-windows
安装第三方库的过程会很长,耐心等待。
安装完成后,再次运行上述命令,则可看到所需依赖均已安装成功:
2.问题总结
由于我在本次安装依赖过程中未遇到问题,故无法给出具体案例。
一般Vcpkg报错问题都形如:
Building package xxx:xxx-windows failed with: BUILD_FAILED
而不同的库出现问题有不一样的解决办法,这里我将把我之前遇到的一些问题进行总结:
1)网络问题
这个问题很好解决,一般解决思路如下:
以LLVM为例
方法1——该方法不局限于因网络问题的报错,如果你觉得下载过程十分缓慢还可手动下载downloading部分:
①当出现上述红色报错或你觉得下载很慢时,向上找Downloading部分:
②复制网址到浏览器,下载LLVM-15.0.6-win64.exe
③重命名该文件为“ -> ”之后的名字(如果名字一样,可不必修改)
④将重新命名好的文件,复制至以下路径:
path to your vcpkgFolder/downloads
⑤重新运行依赖安装命令
如果你很懒,就直接重新运行【1.②】中的依赖安装,则可继续进行OpenMVS的依赖安装。
方法2——仅限于上述红色报错依赖:
.\vcpkg install xxx:xxx-windows --x-use-aria2
如果你的网络实在不行,使用该方法也不行,那么参考方法1进行解决
2)存储空间不足
当编译过程中出现存储空间爆红时,也会结束编译,报红色错误
解决方法就是扩充存储空间
3)中文路径
当你的电脑中存在中文路径时,会报上述红色错误
需要检查你的C盘用户名是否为英文,如果不是,那么需要重新建一个英文名账户,之后重新安装依赖
4)VS没有勾选【英语】语言
这种情况一般会出现在zlib的编译过程,去【Visual Studio Installer】里修改即可
以上问题多由于没有具体案例,需要大家自行判断解决,如果出现问题解决不了,可在评论区留言,我看到会及时回复。
三、克隆与编译
1. 克隆部分
新建一个存储源码的文件夹,我这里新建了srcCode
在该文件夹中使用git:
1)VCG的克隆
git clone https://github.com/cdcseacave/VCG.git
2)OpenMVS的克隆
git clone https://github.com/cdcseacave/openMVS.git
得到以下两个路径:
E:\srcCode\OpenMVS #我自己重新命名过文件夹名字,你的应该是openMVS
E:\srcCode\VCG
2. 编译部分
1)在该文件夹内E:\srcCode\OpenMVS,新建文件夹
openMVS_build
2)右键打开终端
3)运行以下命令,记得要将路径更改为自己的文件路径:
cmake .. ..\src -G "Visual Studio 16 2019" -A x64 -DCMAKE_TOOLCHAIN_FILE=E:\myVcpkg\vcpkg\scripts\buildsystems\vcpkg.cmake -DVCPKG_TARGET_TRIPLET=x64-windows -DVCG_ROOT="E:\srcCode\VCG"
参数:
- cmake : 这是CMake命令行工具的调用。
- .. : 这是指定CMake的工作目录。在这种情况下,.. 表示CMake应该在当前目录的上一级目录中寻找CMakeLists.txt文件。
- ..\src : 这是指定要构建的源代码目录的路径。在我这里,源代码位于当前工作目录的上一级目录中的src文件夹中。
- -G "Visual Studio 16 2019" : 这个参数指定生成的构建系统的类型。在这种情况下,它告诉CMake生成Visual Studio 2019的项目文件。
- -A x64 : 这个参数指定了目标架构,即生成的项目文件将针对64位架构进行编译。
- -DCMAKE_TOOLCHAIN_FILE=E:\myVcpkg\vcpkg\scripts\buildsystems\vcpkg.cmake : 这个参数指定了CMake使用的工具链文件的路径,它告诉CMake使用vcpkg提供的工具链文件,以便在构建过程中处理依赖项。
- -DVCPKG_TARGET_TRIPLET=x64-windows : 这个参数指定了vcpkg的目标平台,它告诉vcpkg使用x64-windows作为目标平台。
- -DVCG_ROOT="E:\srcCode\VCG" : 这个参数定义了一个名为VCG_ROOT的CMake变量,并设置其值为"E:\srcCode\VCG"。这个变量用于指定VCG库的根目录。
其中,参数-G "Visual Studio 16 2019",可通过在终端运行cmake -G查看
4)如下图所示即代表编译完成
可以看到,我们的项目已经存在于openMVS_build
5)使用VS2019打开OpenMVS.sln
6)在解决方案资源管理器里,展开【CMakeTargets】,在【ALL_BUILD】上右键选择【生成/build】,等待即可
可自行选择Debug或Release模式
7)环境配置成功
如上图所示,当build完成时,没有失败,即代表成功
写在最后:
不知道你跟随这篇教程编译成功了没有,成功了就给自己竖个大拇指吧!你在这篇教程里了解了Cmake,Vcpkg和VS的项目编译过程,已经成长了许多,接下来可以去阅读和调试代码了。
如果没有成功也不要放弃,多去做尝试,编译是个枯燥考验耐心的过程,不可能一蹴而就,中间会遇到各种各样的奇奇怪怪的问题,有些作者也没有遇到过,也需要去和大家一样将bug一点点消除,多利用好网络资源,多动手自己去解决,这样才能加深对项目编译的理解。
当遇到问题时,可以到项目的issue中去寻找答案,或直接在issue中对作者进行提问,除了github,国外的Stack Overflow也可以去查找你的问题。
总之,保持耐心,多花费时间去解决问题,多做记录,积累经验,才能更好的成长。
转载请标明出处
如果还有问题,欢迎在评论区留言或私信
作者:CodeLearing
主页:https://blog.csdn.net/weixin_52677672?type=blog
qq群:958124241
Learn Together!