教程
https://colmap.github.io/install.html
0前提
r9000k 3070显卡
opencv3.4.9
0-0如果有acoda先从环境变量去掉,以免导致多重库问题
0-1更新C++11
1 2 | 起作用 source ~/.bashrc |
sa添加相应的源
1
|
sudo add-apt-repository ppa:ubuntu-toolchain-r/test |
更新软件源
1
|
sudo apt- get update |
安装最新版gcc
1
2
|
sudo apt- get install gcc-11 sudo apt- get install g++-11 |
0-2安装依赖
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 | sudo apt- get install \ git \ cmake \ ninja-build \ build-essential \ libboost-program-options-dev \ libboost-filesystem-dev \ libboost-graph-dev \ libboost-system-dev \ libeigen3-dev \ libflann-dev \ libfreeimage-dev \ libmetis-dev \ libgoogle-glog-dev \ libgtest-dev \ libsqlite3-dev \ libglew-dev \ qtbase5-dev \ libqt5opengl5-dev \ libcgal-dev \ libceres-dev |
1 | qtbase5-dev 和libqt5opengl5-dev 报错版本依赖问题装不上,导致后面QT编译错误 |
解决
手动安装下面的只定版本库 最后在装 qtbase5-dev
报错信息
1 2 3 4 5 6 7 8 9 10 11 12 13 | qtbase5-dev : 依赖: libqt5concurrent5 (= 5.12.8+dfsg-0ubuntu2.1) 但是它将不会被安装 依赖: libqt5printsupport5 (= 5.12.8+dfsg-0ubuntu2.1) 但是它将不会被安装 依赖: libqt5sql5 (= 5.12.8+dfsg-0ubuntu2.1) 但是它将不会被安装 依赖: libqt5test5 (= 5.12.8+dfsg-0ubuntu2.1) 但是它将不会被安装 依赖: libqt5xml5 (= 5.12.8+dfsg-0ubuntu2.1) 但是它将不会被安装 依赖: qtbase5-dev-tools (= 5.12.8+dfsg-0ubuntu2.1) 推荐: libqt5opengl5-dev (= 5.12.8+dfsg-0ubuntu2.1) 但是它将不会被安装 E: 无法修正错误,因为您要求某些软件包保持现状,就是它们破坏了软件包间的依赖关系。 下列软件包有未满足的依赖关系: libqt5opengl5-dev : 依赖: libqt5opengl5 (= 5.12.8+dfsg-0ubuntu2.1) 但是 5.15.8.1-1+dde 正要被安装 依赖: qtbase5-dev (= 5.12.8+dfsg-0ubuntu2.1) 但是它将不会被安装 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | 如果已经装了 卸载 安装 sudo install apt- get libqt5concurrent5 = 5.12.8+dfsg-0ubuntu2.1 sudo install apt- get libqt5printsupport5 = 5.12.8+dfsg-0ubuntu2.1 sudo install apt- get libqt5sql5 = 5.12.8+dfsg-0ubuntu2.1 sudo install apt- get libqt5test5 = 5.12.8+dfsg-0ubuntu2.1 sudo install apt- get libqt5xml5 = 5.12.8+dfsg-0ubuntu2.1 sudo install apt- get qtbase5-dev-tools = 5.12.8+dfsg-0ubuntu2.1 sudo install apt- get libqt5opengl5-dev = 5.12.8+dfsg-0ubuntu2.1 报错的话 sudo install apt- get libqt5opengl5-dev 最后 sudo install apt- get qtbase5-dev |
还不行在用下面的方法替换将级现有的库,或者删除在手动一个个装依赖库
依赖关系解决问题
sudo apt-get install aptitude
全部选择y统一
sudo aptitude -f install qtbase5-dev
sudo aptitude -f install libqt5opengl5-dev
后面选择y
QOpenGLWidget: Failed to create context
如果保证个错
1 2 3 | sudo apt- get install build-essential sudo apt- get install qtbase5-dev qtchooser qt5-qmake qtbase5-dev-tools sudo apt- get install qt5* |
关机重启
0-3 安装ceres(没必要)
如果要适配openvslam,需要限定下版本
https://www.cnblogs.com/gooutlook/p/16309889.html
1 编译工程
报错1
Or, manually install latest CUDA from NVIDIA’s homepage. During CMake configuration specify CMAKE_CUDA_ARCHITECTURES as “native”, if you want to run COLMAP on your current machine only, “all”/”all-major” to be able to distribute to other machines, or a specific CUDA architecture like “70”, etc.
添加
122行 启用cuda
1 | set (CMAKE_CUDA_ARCHITECTURES "native" ) # 添加 |
报错2
1 | ptxas fatal : Value 'sm_30' is not defined for option 'gpu-name' |
查询
1 | apt-cache policy nvidia-cuda-toolkit |
编译
1 2 3 4 5 6 7 8 | git clone https: //github.com/colmap/colmap.git cd colmap git checkout dev mkdir build cd build cmake .. -GNinja ninja sudo ninja install |
验证colmap
1 2 | colmap -h colmap gui |
安装pycolmap
https://github.com/colmap/pycolmap
pip install pycolmap
1 2 | conda create -n colmap python=3.7 conda activate colmap |
报错2 pybind11缺少
Unknown CMake command "pybind11_add_module".
第三方库没下载,需要手动下载在文件夹子
1 2 | git clone https: //github.com/pybind/pybind11.git |
重新安装
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律
2018-09-06 WiFi-ESP8266入门http(2-2)文件系统-复杂结构的网页 + 文本框交互WIFI信息
2018-09-06 WiFi-ESP8266入门http(2-1)文件系统-复杂结构的网页
2018-09-06 WiFi-ESP8266入门http(1)-建立服务器,直接发送网