安装依赖
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
编译colmap
git clone https://github.com/colmap/colmap.git
cd colmap
mkdir build
cd build
cmake .. -GNinja
ninja
sudo ninja install
mkdir build 时报错:Cannot specify include directories for imported target “freeimage::FreeImage”.
原因:cmake版本在3.11之前,target_include_directories命令有一些问题,需要升级cmake版本。通过cmake -version命令查看当前版本。
接近:升级cmake:不要使用apt update cmake的方法,会导致异常。建议在自己的目录下安装新的cmake包,作为优先的cmake路径
# 下载cmake源码包
wget https://github.com/Kitware/CMake/releases/download/v3.21.4/cmake-3.21.4-linux-x86_64.tar.gz
# 解压
tar -xzvf cmake-3.21.4-linux-x86_64.tar.gz
cmake … -GNinja 报错:could not find ZL4
原因:可能还没有安装zl4,也可能是没在路径中,找不到这个库。
apt -y install liblz4-dev
ninja 报错:nvcc fatal : unsupported gpu architecture ‘compute_native’
解决方案:在colmap/cmake/FindDependencies.cmake文件里面加入一句set(CMAKE_CUDA_ARCHITECTURES “80”),(注意这里的80这个数字是因为是cuda11系列的,所以用80)
CUDA 10.x 最高支持算力为 7.x,CUDA 11.x 最高支持算力为 8.x