CMake 错误:CMAKE_CUDA_ARCHITECTURES 如果设置则必须为非空

问题描述 投票:0回答:1

我正在使用 CMake 3.26 来配置使用 CUDA 的项目。它的

CMakeLists.txt
是:

cmake_minimum_required(VERSION 3.25)
project(foo CUDA)

我通过调用将其定向到特定的 CUDA 版本

cmake -DCMAKE_CUDA_COMPILER=/usr/local/cuda-12.2/bin/nvcc

我得到:

CMake Error at /path/to/share/cmake-3.26/Modules/CMakeDetermineCUDACompiler.cmake:277 (message):
  CMAKE_CUDA_ARCHITECTURES must be non-empty if set.
Call Stack (most recent call first):
  CMakeLists.txt:2 (project)

为什么会发生这种情况以及如何解决?

c++ cmake cuda
1个回答
0
投票

要查看实际发生的情况,请尝试“任意”设置

CMAKE_CUDA_ARCHITECTURES
,如下所示:

cmake_minimum_required(VERSION 3.25)
set(CMAKE_CUDA_ARCHITECTURES "native")
project(foo CUDA)

现在,您将收到不同的错误消息:

CMake Error at CMakeLists.txt:3 (project):
  The CMAKE_CUDA_COMPILER:

    /usr/local/cuda-12.2/bin/nvcc

  is not a full path to an existing compiler tool.

这就是实际的问题。不幸的是,它没有被检测到并被报告,你得到的是关于 CMake 如何无法使用其自动检测逻辑填充其

CMAKE_CUDA_ARCHITECTURES
变量的抱怨。

解决方案是:不要将 CMake 定向到不存在的 nvcc...您可能路径错误或忘记安装该版本等。

© www.soinside.com 2019 - 2024. All rights reserved.