编译代码参考:【COLMAP】linux上跑通COLMAP - 知乎官网下载代码源码下载地址: https://github.com/colmap/colmap 源码编译说明: Installation - COLMAP 3.8 documentationCOLMAP可以作为独立的app,通过命令行或者图形交互界面使用,也可以作为一个库被包含到其…icon-default.png?t=N7T8https://zhuanlan.zhihu.com/p/526135749

第一个问题,环境包缺失

报错:

CMake Error at cmake/FindFLANN.cmake:89 (message):

Could not find FLANN Call Stack (most recent call first): cmake/FindDependencies.cmake:17 (find_package) CMakeLists.txt:86 (include)

解决

sudo apt-get install libflann-dev

同样报错

CMake Error at /root/miniconda3/lib/python3.8/site-packages/cmake/data/share/cmake-3.26/Modules/FindPackageHandleStandardArgs.cmake:230 (message):
  Could NOT find SQLite3 (missing: SQLite3_INCLUDE_DIR SQLite3_LIBRARY)
Call Stack (most recent call first):
  /root/miniconda3/lib/python3.8/site-packages/cmake/data/share/cmake-3.26/Modules/FindPackageHandleStandardArgs.cmake:600 (_FPHSA_FAILURE_MESSAGE)
  /root/miniconda3/lib/python3.8/site-packages/cmake/data/share/cmake-3.26/Modules/FindSQLite3.cmake:54 (find_package_handle_standard_args)
  cmake/FindDependencies.cmake:24 (find_package)
  CMakeLists.txt:86 (include)

一样,安装相关包

sudo apt-get install libsqlite3-dev

2.编译bug

第一个,CUDA配置错误,报错

CMake Error at cmake/FindDependencies.cmake:125 (message):
  You must set CMAKE_CUDA_ARCHITECTURES to e.g.  'native', 'all-major', '70',
  etc.  More information at
  https://cmake.org/cmake/help/latest/prop_tgt/CUDA_ARCHITECTURES.html
Call Stack (most recent call first):
  CMakeLists.txt:87 (include)

修改CMakeLists.txt,添加一句set即可

set(CMAKE_CUDA_ARCHITECTURES "native")

2.glog相关报错,这个问题比较大,需要修改库内文件

CMake Error at /usr/local/lib/cmake/Ceres/FindGlog.cmake:349 (add_library):
  add_library cannot create imported target "glog::glog" because another
  target with the same name already exists.
Call Stack (most recent call first):
  /usr/local/lib/cmake/Ceres/CeresConfig.cmake:247 (find_package)
  cmake/FindDependencies.cmake:33 (find_package)
  CMakeLists.txt:87 (include)

通过报错找到FindGlog.cmake 文件349 行

原代码为

修改源代码为(其实直接注释掉也无妨)

if(NOT TARGET glog::glog)
  add_library(glog::glog INTERFACE IMPORTED)
  target_include_directories(glog::glog INTERFACE ${GLOG_INCLUDE_DIRS})
  target_link_libraries(glog::glog INTERFACE ${GLOG_LIBRARY})
endif()

完毕,顺利编译,祝大家搭环境顺利

Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐