openmvg、colmap windows10编译经验文档

因为公司业务发展需要,需要从linux转windows,这就意味着大概4年没有用过windows人需要把linux上的代码移植到windows,下面是在windows上编译colmap 和openmvg的一些workflow.

colmap 跨平台移植(vcpkg 和cmake 结合的方式)

1、需要手动安装的库

在这里插入图片描述

在这里插入图片描述

D:\vs2019\VC\Tools\MSVC\14.28.29333\bin\Hostx64\x64 的目的是配置cl.exe

在这里插入图片描述

cmake find Qt 的效果如下:

在这里插入图片描述

  • 安装nvidia 驱动和cudn

根据自己的显卡查询驱动 https://www.nvidia.cn/geforce/drivers/,自己电脑是1660ti 安装完毕驱动,nvidia-smi 可以看到如下效果:

在这里插入图片描述

cudn 安装方式如https://blog.csdn.net/u010618587/article/details/82940528 ,不要安装全家桶,否则会cover 之前的驱动,安装完成后,按照博客方式添加环境变量并test cudn 是否正常运行成功,最后在命令行输入nvcc -V ,如下所示即可表明安装结束:

在这里插入图片描述

  • cgal 安装 下载链接 cgal

     添加环境变量如下:
    

在这里插入图片描述

2、通过vcpkg 安装的库

git clone https://github.com/microsoft/vcpkg
cd vcpkg
./bootstrap-vcpkg.sh
  • ceres solver,如果是手动安装的话,非常麻烦,所以这里通过vcpkg 方式来安装
vcpkg install ceres[suitesparse,cxsparse]:x64-windows --recurse

同时在vcpkg-master\packages\ceres_x64-windows\share\ceres路径下修改CeresConfig.cmake,将其改成如下(otherwise cmake 无法find ceres)

在这里插入图片描述

  • vcpkg 安装freeimage 、glew 和boost,如下所示:

在这里插入图片描述

这里安装完毕后,需要去修改colmap 的CmakeLists,如下:(windows 太坑,区分大小写)

在这里插入图片描述

3 、cmake 编译colmap

进入build 文件夹下输入

cmake -G "Visual Studio 16 2019" -DCMAKE_TOOLCHAIN_FILE=D:\windows_colmap\colmap\vcpkg-master\scripts\buildsystems\vcpkg.cmake ..

cmake log 如下:

在这里插入图片描述

cmake 没有error ,最后一步就是vs打开build 文件夹下的COLMAP.sln文件,模式改成release,build solution 等待其编译即可,完成后如下(colmap.exe在build\src\exe\Release目录下):

在这里插入图片描述

openmvg 跨平台移植

  • vcpkg install openmvg[core,openmp]:x64-windows

       遇到长时间不能下载的库,手动下载,放到vcpkg 文件夹中的download 里面
      
       vcpkg 安装openmvg 和colmap 不同,colmap 会直接编译好生成可执行文件;openmvg只会生成静态库文件(lib文件)
    
  • cmake -G "Visual Studio 16 2019" - DCMAKE_TOOLCHAIN_FILE=D:\windows_colmap\colmap\vcpkg-master\scripts\buildsystems\vcpkg.cmake ../src/

     在build 文件中执行上条cmake,会得到以下:
    

在这里插入图片描述

     点击openMVG.sln 文件,打开vs2019,将debug 改成release ,执行build solution ,如下

在这里插入图片描述

生成的可执行文件路径和结果如下:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-AkhSdLCD-1612342899028)(C:\Users\yuanc\Desktop\跨平台编译\openmvg\static_8Bq3T76vUAw6xBKeh2Ahpk_3.png)]

猜你喜欢

转载自blog.csdn.net/qq_15642411/article/details/113614940