You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Linux下CMake无法找到CUDA的问题求助(Fedora 40环境)

解决CMake无法找到指定路径下nvcc的问题

问题分析

你通过Fedora39的CUDA仓库在Fedora40上安装了CUDA Toolkit,CMake配置时指定CUDAToolkit_ROOT="/usr/local/cuda",但报错提示在/usr/local/cuda-12.6路径下找不到nvcc。这通常是因为符号链接失效、CMake变量优先级问题,或是仓库版本不匹配导致的安装路径异常。

解决方案

1. 确认nvcc的实际位置

先执行命令验证nvcc是否存在及具体路径:

which nvcc
nvcc --version

如果输出显示nvcc在/usr/local/cuda-12.6/bin/nvcc,说明/usr/local/cuda这个符号链接可能未正确指向该版本目录。

2. 修复符号链接

如果/usr/local/cuda不是指向cuda-12.6的符号链接,执行以下命令重建链接:

sudo ln -sf /usr/local/cuda-12.6 /usr/local/cuda

执行后再次检查链接状态:

ls -l /usr/local/cuda

输出应显示该链接指向cuda-12.6目录。

3. 直接指定CUDA编译器路径

修改CMakeLists.txt,在project命令前显式指定nvcc路径,避免CMake自动搜索错误路径:

cmake_minimum_required(VERSION 3.20 FATAL_ERROR)

# 直接指定nvcc可执行文件路径
set(CMAKE_CUDA_COMPILER "/usr/local/cuda/bin/nvcc")
set(CUDAToolkit_ROOT "/usr/local/cuda")

project(biNRC LANGUAGES CXX CUDA)

add_executable(${PROJECT_NAME} main.cu)
target_compile_features(${PROJECT_NAME} PUBLIC cxx_std_20 cuda_std_20)

set_target_properties(${PROJECT_NAME} PROPERTIES
    CUDA_SEPARABLE_COMPILATION ON
    CUDA_STANDARD_REQUIRED ON
    CXX_STANDARD_REQUIRED ON
    CXX_EXTENSIONS OFF
)

4. 检查并配置环境变量

确保CUDA的bin目录在系统PATH中,避免CMake无法检索到nvcc:

export PATH=/usr/local/cuda/bin:$PATH
export LD_LIBRARY_PATH=/usr/local/cuda/lib64:$LD_LIBRARY_PATH

配置完成后重新运行CMake命令。

5. 更换为Fedora40适配的CUDA仓库(可选)

你当前使用的是Fedora39的CUDA仓库,可能存在版本兼容性问题。建议更换为Fedora40的官方仓库重新安装:

sudo dnf config-manager --remove-repo cuda-fedora39
sudo dnf config-manager --add-repo https://developer.download.nvidia.com/compute/cuda/repos/fedora40/x86_64/cuda-fedora40.repo
sudo dnf clean all
sudo dnf -y install cuda

重新安装后重复上述1-4步骤验证配置。

内容的提问来源于stack exchange,提问作者julcs

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.17 16:12:36