环境:Ubuntu20.04
此篇仅作记录,方便日后查阅。
follow 官方的tutorial就可以。
安装依赖
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
运行到ninja时候报错
nvcc fatal : Unsupported gpu architecture 'compute_native'
更新cmake到3.24+,我更新到了3.25.1。
然后
ninja clean
cmake .. -GNinja
ninja
报错collect2: error: ld returned 1 exit status,参考这个issue。
然后colmap -h
报错
colmap: /lib/x86_64-linux-gnu/libQt5Core.so.5: version `Qt_5.15' not found (required by colmap)
参考这篇文章解决了。
又出现这个报错:
colmap: /home/cjji/anaconda3/lib/libstdc++.so.6: version `GLIBCXX_3.4.30' not found (required by colmap)
参考这篇博客,但是不完全一样:
#首先看报错目录下/home/cjji/anaconda3/lib/libstdc++.so.6是否有`GLIBCXX_3.4.30',发现确实没有
strings /home/cjji/anaconda3/lib/libstdc++.so.6 | grep GLIBCX
#再看目录/usr/lib/x86_64-linux-gnu/libstdc++.so.6发现下面有GLIBCXX_3.4.30
strings /usr/lib/x86_64-linux-gnu/libstdc++.so.6 | grep GLIBCX
#删除/home/cjji/anaconda3/lib/libstdc++.so.6
rm /home/cjji/anaconda3/lib/libstdc++.so.6
#建立新的软连接
ln -s /usr/lib/x86_64-linux-gnu/libstdc++.so.6 /home/cjji/anaconda3/lib/libstdc++.so.6
然后colmap -h
可以正常运行了。