Windows+VS2019用vcpkg编译colmap以及用Cmake编译colmap源码
Window下官方建议用vcpkg安装。这里我已经安装好了VS2019以及cuda11.7。
1.安装vcpkg
git clone https://github.com/microsoft/vcpkg
cd vcpkg
.\bootstrap-vcpkg.bat
2. 使用vcpkg编译colmap
.\vcpkg install colmap[cuda,tests]:x64-windows
3.出现的问题
1.boost总是下载失败
在编译信息里找到这个包对应的下载地址,然后在浏览器打开这个网址下载这个包,然后放在vcpkg/downlowds文件夹下,而且要记得把包名修改成对应的名字。
然后重新编译
2.显示没有安装cuda
编译时报错 cuda NO-FOUND
安装完cuda之后,输入nvcc --version还是显示没有安装
解决方法:要在环境变量里添加上cuda的路径
然后再重新编译。
遇到还有其他一些问题导致编译中止或失败的,就重新编一下,有时候重编一下就过去了
最后,在命令行执行
<VCPKG-ROOT>\packages\colmap_<TRIPLET>\tools\colmap\colmap.exe gui
就可以调出colmap的gui界面了
4.colmap源码编译CMake
但是,咱就是说用vcpkg编出来的colmap不能调试代码,giao,还是自己编译源码吧。
4.1.源码下载
https://github.com/colmap/colmap
也可以在命令行cd到想要放置源码的路径,然后使用git下载
git clone https://github.com/colmap/colmap
4.2.CMake编译
我下载了最新版的cmake-3.26
因为编译colmap所有的库在vcpkg里面都能找到,所以让cmake找到vcpkg里所有的包就行了
首先在colmap源码文件夹下新建build文件夹,在CMake里填上对应路径
点击configure,进行设置,选择Specify toolchain file for cross-compiling ,然后vcpkg.cmake的路径
确认后开始编译,cmake就会自己在vcpkg里面找到所需要的包
出现报错信息
CMake Error at CMakeLists.txt:255 (message):
You must set CMAKE_CUDA_ARCHITECTURES to e.g. 'native', 'all-major', '70',
etc. More information at
https://cmake.org/cmake/help/latest/prop_tgt/CUDA_ARCHITECTURES.html
解决方法:在CMakeList里面加上
set(CMAKE_CUDA_ARCHITECTURES "native")
编译通过。
Tips:以上步骤同样能解决以下cmake找不到BOOST的报错
Could NOT find Boost (missing: unit_test_framework) (found version "1.81.0")
最后感谢实验室top博士的帮助,牛的嘞