COLMAP 3.13.0 + CUDA 12.9 + Ubuntu24.04 编译

COLMAP 3.13.0 + CUDA 12.9 + Ubuntu24.04 编译

  • [1. 安装CUDA](#1. 安装CUDA)
  • [2. 按照官网配置安装第三方库](#2. 按照官网配置安装第三方库)
  • [3. 按照官网流程编译colmap](#3. 按照官网流程编译colmap)

前清提要:由于显卡是最新的50系,所以CUDA只能装最新版本12.9

1. 安装CUDA

自行搜索需要版本的教程,此处不赘述

2. 按照官网配置安装第三方库

colmap官方配置

执行完官方配置里的第三方库安装之后,由于colmap版本更新,多依赖了一个新的库

复制代码
sudo apt-get install libopenimageio-dev openimageio-tools

3. 按照官网流程编译colmap

复制代码
git clone https://github.com/colmap/colmap.git
cd colmap
mkdir build
cd build
cmake .. -GNinja -DBLA_VENDOR=Intel10_64lp
ninja
sudo ninja install

我在cmake的时候遇到一个新问题,报错如下

复制代码
Compiling the CUDA compiler identification source file
  "CMakeCUDACompilerId.cu" failed.

  Compiler: /usr/local/cuda/bin/nvcc

  Build flags:

  Id flags: --keep;--keep-dir;tmp -v

后来查询得知,是因为没有找到正确nvcc的位置

原始bug解决方法链接

首先在控制台输入

复制代码
which nvcc

就可以看到nvcc的路径,没有的话说明cuda没有正确安装,重装cuda

然后把对应路径填入下面的对应位置,不要带引号,在cmake编译指令加上下面这句话

复制代码
-DCMAKE_CUDA_COMPILER=`which nvcc`

对我来说,cmake完整的编译指令为

复制代码
cmake .. -GNinja -DBLA_VENDOR=Intel10_64lp -DCMAKE_CUDA_COMPILER=/usr/local/cuda-12/bin/nvcc

编译完成!

相关推荐
blasit1 天前
笔记:Qt C++建立子线程做一个socket TCP常连接通信
c++·qt·tcp/ip
肆忆_2 天前
# 用 5 个问题学懂 C++ 虚函数(入门级)
c++
不想写代码的星星3 天前
虚函数表:C++ 多态背后的那个男人
c++
端平入洛4 天前
delete又未完全delete
c++
端平入洛5 天前
auto有时不auto
c++
哇哈哈20216 天前
信号量和信号
linux·c++
多恩Stone6 天前
【C++入门扫盲1】C++ 与 Python:类型、编译器/解释器与 CPU 的关系
开发语言·c++·人工智能·python·算法·3d·aigc
蜡笔小马6 天前
21.Boost.Geometry disjoint、distance、envelope、equals、expand和for_each算法接口详解
c++·算法·boost
超级大福宝6 天前
N皇后问题:经典回溯算法的一些分析
数据结构·c++·算法·leetcode
weiabc6 天前
printf(“%lf“, ys) 和 cout << ys 输出的浮点数格式存在细微差异
数据结构·c++·算法