- 编译环境:
- Ubuntu 22.04
- gcc & g++ :9.5
- cmake :3.22
- 一些必要的库:
-
sudo apt-get install cmake libeigen3-dev libboost-all-dev libfreeimage-dev libsuitesparse-dev libgoogle-glog-dev libgflags-dev libgtest-dev sudo apt-get install libmetis-dev
-
- Colmap 3.9:
-
https://github.com/colmap/colmap.git cd colmap mkdir build
-
- 注意:
- 到这一步,就需要进行编译,编译过程容错很低,我遇到的问题是anaconda目录中的lib文件和系统文件调用的冲突问题,解决:
- anaconda安装路径中的lib文件夹整个复制到随便一个备份区域,这是为了不让编译colmap的过程受到anaconda系统环境变量的影响;
- 这里有一个问题,就是要设置CMAKE_CUDA_ARCHITECTURES,在colmap文件夹下,编辑CMakeLists.txt,加入这个名命令(43行)(加入了就行,具体几行没那么重要)
- 到这一步,就需要进行编译,编译过程容错很低,我遇到的问题是anaconda目录中的lib文件和系统文件调用的冲突问题,解决:
-
- 还有一个问题是:
- 为了防止这个问题的发生,要:
- 编辑 colmap/src/colmap/exe/sfm.cc,在文件开头(或者说是在include boost头文件之前)加入这段:
-
#define BOOST_BIND_GLOBAL_PLACEHOLDERS
-
- 编辑 colmap/src/colmap/exe/sfm.cc,在文件开头(或者说是在include boost头文件之前)加入这段:
-
同时在Ubuntu中安装Ceres Solves
-
sudo apt-get install cmake git git clone https://github.com/ceres-solver/ceres-solver.git cd ceres-solver mkdir build cd build cmake .. make -j$(nproc) sudo make install
-
- 以上步骤都是为了确保对Colmap的整个编译流程顺利进行。
- 之后:进入之前在colmap目录中建立的build目录
-
cd build #进入build文件夹 cmake .. make -j$(nproc) make install
-
- 大功告成