ubuntu16.04 安装COLMAP具体步骤以及遇到的bug
(1)安装eigen 3.3.7 下载地址:https://gitlab.com/libeigen/eigen/-/releases eigen官网
(2)安装Ceres 1.14.0 下载地址: ceres官网
(1)到官网下载对应版本的压缩包(版本一定不要选错,不然后面各种编译的时候回出现错误),并解压。 代码片
.
// 解压
tar -zxvf eigen-3.3.7.tar.gz
// 编译安装3.3.7
cd eigen-3.3.7
mkdir build
cd build
cmake ..
sudo make
sudo make install
复制Eigen库到usr/local/include中
sudo cp -r usr/local/include/eigen3/Eigen usr/local/include
eigen 3.3.7与ceres 1.14.0版本一定要对应,不然后续会出现版本不匹配造成的编译错误。因此在这选择正确的对应点版本减少后续的麻烦。
//下载ceres-solver-1.14.0
wget ceres-solver.org/ceres-solver-1.14.0.tar.gz
//解压
tar -zxvf ceres-solver-1.14.0.tar.gz
// 编译Ceres 1.14.0
cd ceres-solver-1.14.0
sudo mkdir build
cd build
sudo cmake ..
sudo make
//安装
sudo make install
1.获取Colmap源代码
//下载Colmap源代码
git clone https://github.com/colmap/colmap
2.安装依赖库
git \
cmake \
build-essential \
libboost-program-options-dev \
libboost-filesystem-dev \
libboost-graph-dev \
libboost-regex-dev \
libboost-system-dev \
libboost-test-dev \
libeigen3-dev \
libsuitesparse-dev \
libfreeimage-dev \
libgoogle-glog-dev \
libgflags-dev \
libglew-dev \
qtbase5-dev \
libqt5opengl5-dev \
libcgal-dev
在Ubuntu 16.04/18.04下CGAL的CMake配置脚本被破坏,你必须安装CGAL Qt5包:
sudo apt-get install libcgal-qt5-dev
3.安装
cd colmap
git checkout dev
mkdir build
cd build
cmake ..
make
sudo make install
4.运行
colmap -h
colmap gui
1.问题描述
原因:
eigen版本与ceres版本不匹配
解决办法:
更换本文所要求的版本,在更改之前应先删除原有版本
(1)查看Eigen版本号
cat /usr/include/eigen3/Eigen/src/Core/util/Macros.h
Eigen库版本的定义在 /usr/include/eigen3/Eigen/src/Core/util/Macros.h 里面
或者
cat /usr/local/include/eigen3/Eigen/src/Core/util/Macros.h
(2)查看Ceres版本:
sudo cat /usr/local/include/ceres/version.h
Ceres库版本的定义在 /usr/local/include/ceres/version.h 里面
(3)删掉一些旧版本
ceres的文件,否则直接安装清理不掉,依然会报错
①/usr/local/include中的ceres文件夹直接删掉
②/usr/local/lib下的libceres.a
③/usr/local/lib/cmake/Ceres 下有关ceres的全都删掉
④/usr/local/share/Ceres 文件夹删掉
上面四点中,若是没有的话就不必删了
如果怕还有残余,则在终端:locate ceres 然后 locate Ceres 主要看usr文件夹下是否有关于ceres的,若有,必须删除掉.
//查看是否残余
locate ceres
locate Ceres
//删除
sudo rm -r /usr/local/lib/cmake/Ceres
sudo rm -rf /usr/local/include/ceres /usr/local/lib/libceres.a
sudo rm -r /usr/local/share/Ceres
删除Eigen旧版本与删除ceres旧版本同样的步骤
//查看是否残余
locate Eigen
//删除
sudo rm -r 文件夹
sudo rm -rf 文件
参考:
https://blog.csdn.net/X_kh_2001/article/details/82591978