• 博客园logo
  • 会员
  • 众包
  • 新闻
  • 博问
  • 闪存
  • 赞助商
  • HarmonyOS
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录
MKT-porter
博客园    首页    新随笔    联系   管理    订阅  订阅
ubuntu20安装colmap

 

教程

https://colmap.github.io/install.html

 

0前提

r9000k  3070显卡

opencv3.4.9

0-0如果有acoda先从环境变量去掉,以免导致多重库问题

 

0-1更新C++11

起作用
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安装依赖

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

 

qtbase5-dev 和libqt5opengl5-dev 报错版本依赖问题装不上,导致后面QT编译错误

解决

手动安装下面的只定版本库 最后在装 qtbase5-dev

报错信息

 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) 但是它将不会被安装

  

如果已经装了 卸载


安装
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

 

如果保证个错

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

set(CMAKE_CUDA_ARCHITECTURES "native") # 添加

 

  

 

 

 

 

 报错2

 

 

 ptxas fatal : Value 'sm_30' is not defined for option 'gpu-name'

  

 

 查询 

apt-cache policy nvidia-cuda-toolkit

  

  

编译

git clone https://github.com/colmap/colmap.git
cd colmap
git checkout dev
mkdir build
cd build
cmake .. -GNinja
ninja
sudo ninja install

  

 

 

 

  验证colmap

colmap -h
colmap gui

  

 

 

安装pycolmap 

 https://github.com/colmap/pycolmap

pip install pycolmap
 
conda create -n colmap python=3.7
conda activate colmap

 

报错2 pybind11缺少


Unknown CMake command "pybind11_add_module".

第三方库没下载,需要手动下载在文件夹子

	
git clone https://github.com/pybind/pybind11.git

  

 

 

 

 

 重新安装

posted on 2023-09-06 17:13  MKT-porter  阅读(969)  评论(0)    收藏  举报
刷新页面返回顶部
博客园  ©  2004-2025
浙公网安备 33010602011771号 浙ICP备2021040463号-3