VS2019 WIN10 配最新版(截止2022.5.16)踩了好多坑,最后总算成功了。
建议有条件就换Linux或者Windows下的VS2017及以下版本(本人没条件,没条件整Linux系统,虚拟机不够用,VS2019上有好多之前的项目需要做)
看到这里的朋友请好好想想自己是否必须要在windows下配,是否必须要用VS2019。如果真的非此环境不可,那就看看我的成功记录吧,希望能给你点灵感。有问题欢迎在评论区指出,说不定有我能跨过去的坑。
一.基于方案一环境的基础上
二.单独git一份openMVS,CMake成功,编译sln成功
三.再使用此方法,成功编译openMVG
添加环境变量:
D:\VS2019\VC\Tools\MSVC\14.26.28801\bin\Hostx64\x64的目的是配置cl.exe
(需要自己注册个账号,本人下的5.9.9)参考教程,添加环境变量:
不瞒你说,笔者作为985研究生,用的是锐龙处理器,没有显卡(实验室的工作站一直被博士师兄占用),所以这步省略。
git clone https://github.com/microsoft/vcpkg
cd vcpkg
.\bootstrap-vcpkg.bat
.\bootstrap-vcpkg.sh
在“系统变量 ”中,点击 “新建 ”,即可新建一个变量。
变量名:VCPKG_DEFAULT_TRIPLET
变量值:x64-windows
了在Visual Studio中使用vcpkg,只需要进行一下操作,在之后的使用中就可以直接使用了(需要开启管理员权限):
vcpkg.exe integrate install
vcpkg install openmvg:x64-windows
vcpkg install openmvs:x64-windows
跳过6.7.8.9
如果行不通,再试试6.7.8.9+二+三。
参考教程的注意事项
vcpkg.exe install yasm-tool:x86-windows
可能出现的问题1:
Error: vcpkg was unable to detect the active compiler’s information. See above for the CMake failure output.
解决方法:打开vcpkg/scripts/buildsystems/vcpkg.cmake这个文件在第24行添加两行代码
SET (CMAKE_C_COMPILER_WORKS 1)
SET (CMAKE_CXX_COMPILER_WORKS 1)
可能出现的问题2:
error: building yasm:x64-windows failed with: BUILD_FAILED
解决方法:国内网络太慢翻一下再执行就好了。。。
执行vcpkg.exe install cgal
,这里提示需要更新一些包,改命令为:
vcpkg.exe install cgal --recurse
好像是我的磁盘空间不够了???重新运行下成功了:
下载(https://github.com/CGAL/cgal/releases/download/v5.4/CGAL-5.4-examples.zip)
按照教程编译一下例子试试,通过
添加环境变量如下:
vcpkg.exe install ceres
//不行的话试试下面的:
vcpkg.exe install ceres[suitesparse,cxsparse]:x64-windows --recurse
为了让CMake find ceres,在 C:\vcpkg\packages\ceres_x64-windows\share\ceres 路径下修改 CeresConfig.cmake:
改为:
vcpkg.exe install freeimage:x64-windows
vcpkg.exe install glew:x64-windows
vcpkg.exe install boost:x64-windows
直接应用软件的话,前三个里选合适的就ok了,解压:
双击RUN_TESTS:无误
双击COLMAP:正常打开
如果需要源码编译,建议不要用vcpkg安装,如果用vcpkg会带来很多麻烦(有些库可能会更新,之前设置的环境变量需要对应改变,不信可以一试):
vcpkg.exe install colmap:x64-windows --recurse
这里本人直接下载源码,然后改动一下直接CMakelist,再CMake:
增加SET语句用于指导cmake在指定路径下寻找vcpkg中配置的库文件和头文件:SET(CMAKE_TOOLCHAIN_FILE“C:/vcpkg/scripts/buildsystems/vcpkg.cmake”)
因为本人没用CUDA所以这部分设置为OFF
Windows严格区分大小写,注释中的库改为下面的小写:
进入build文件夹,cmake编译colmap:
cmake -G "Visual Studio 16 2019" -DCMAKE_TOOLCHAIN_FILE=C:\vcpkg\scripts\buildsystems\vcpkg.cmake
或者是直接cmake-gui
手动配置:
打开sln编译:
竟然有两个错误:
查看error,发现全是FreeImage的问题:
vcpkg remove freeimage:x64-windows
vcpkg install freeimage:x64-windows --head
问题可能是在这个:
查了查好像是vcpkg的bug,没办法。这里只能直接把freeimage压缩包解压,自己打开sln编译,还是不行。难产了,我怀疑是colmap的版本问题,直接上最新的:
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
下载VCG和openMVS
mkdir OpenMVS
cd OpenMVS
git clone https://github.com/cdcseacave/VCG.git
git clone https://github.com/cdcseacave/openMVS.git src
CMake没问题,编译没问题。