win10+vs2017+vcpkg 配置colmap3.6

配置前关键提醒

colmap依赖众多的c++库,且库之间有版本隔离,建议使用ubuntu配置学习colmap,如果非要使用win下的colmap,请暂时不要选择vs2019,尝试vs2019配合vcpkg未成功,vcpkg截至博客撰写时仍然有很多坑,依然选择vcpkg配置的重要原因是colmap依赖众多,配置错误无法确定是否为库间版本隔离导致。

vcpkg配置

colmap文档提示,在windows PowerShell中执行如下命令,下载和配置vcpkg,

// On Windows
git clone https://github.com/microsoft/vcpkg
cd vcpkg
.\bootstrap-vcpkg.bat

若配置中出现问题,需要将vs2017中语言增加英语,具体操作是到控制面板中卸载vs2017,在如下页面中选择修改,增加英语语音即可。
增加vs英文语言

安装colmap依赖项

执行如下命令,下载和编译colmap依赖项目,

// On Windows
.\vcpkg install colmap[cuda,tests]:x64-windows

这里需要特别注意:vcpkg会自动下载并使用vs2017编译器编译64位colmap依赖项,需要保持网速流畅,且链接外网,在学校中我选择本科生上课的时间段配置,vcpkg下载经常中断,尤其是在下载boost相关文件时,下载失败时常有的事情,当powershell中提示下载失败时,将下载网页复制到链接外网的浏览器中直接下载,下载文件放置在vcpkg->downloads文件夹中,再次执行:

// On Windows
.\vcpkg install colmap[cuda,tests]:x64-windows

CUDA安装

cuda的安装版本是在vcpkg安装的过程中确定的,当vcpkg安装依赖项的过程中,会提示cuda的安装,按照安装提示,在cuda官网下载相应版本的cudatoolkit进行安装,安装选择自定义安装方式,具体参考这篇博客

vs2017编译colmap

按如下流程并未成功的编译colmap3.6源代码,后使用cmake手动组织colamp程序,vs2017进行编译。

run ./vcpkg integrate install
.\vcpkg install colmap[cuda,tests]:x64-windows
cd D:\Reconstruction\code\colmap
mkdir build
cd build
cmake .. -DCMAKE_TOOLCHAIN_FILE=D:/VCPCGINSTALL/vcpkg2017/scripts/buildsystems/vcpkg.cmake
cmake --build . --config release --target colmap_exe --parallel 24

colmap github下载colamp3.6源码,解压后修改最外层CMakeLists.txt文件,增加SET(CMAKE_TOOLCHAIN_FILE “D:/VCPCGINSTALL/vcpkg2017/scripts/buildsystems/vcpkg.cmake”)语句用于指导cmake在指定路径下寻找vcpkg中配置的库文件和头文件。

cmake_minimum_required(VERSION 3.0)
SET(CMAKE_TOOLCHAIN_FILE "D:/VCPCGINSTALL/vcpkg2017/scripts/buildsystems/vcpkg.cmake")
project(COLMAP)

set(COLMAP_VERSION "3.6")
set(COLMAP_VERSION_NUMBER "3600")

vcpkg中自动配置编译的CGAL不能满足colmap6.3的需求,并未安装gmp库,在vcpkg中手动安装gmp库发生库依存错误,如下图所示,mipr和gmp库不能同时存在,索性直接下载cgal安装包,手动编译cgal库,这里我使用cgal版本是4.12。
在这里插入图片描述
安装cgal后,在cgal目录中建立build文件夹,cmake组织cgal(如下图)使用vs2017编译。注意:使用管理员模式打开vs2017,分别生成release和debug下的ALL_BUILD和INSTALL部分。
在这里插入图片描述

打开cmake组织vs程序,如下图中所示,关于cgal的部分换成自己手动编译的库和头文件。直接configure和generate即可。
在这里插入图片描述
vs2017打开colmap进行编译,我这里编译过程中出现一处错误如下所示,这里添加mpir.lib路径到colmap_exe项目的附加依赖项中即可解决。
在这里插入图片描述

D:\VCPCGINSTALL\vcpkg2017\installed\x64-windows\lib\mpir.lib

debug编译时出现应用程序无法正常启动0xc000007b错误提示,这里需要把提示的dll文件放置在colamp执行目录下,放错同名文件导致的程序报错,这对我的配置问题,将libgmp-10.dll文件从自己配置的cgal中拷贝到colmap执行目录下即可解决。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值