Dom*_*nic 3 c++ cuda cmake c++17
我正在使用 CMake 配置 CUDA/C++ 项目。使用 NVCC 编译的某些文件需要 C++ 17 功能。为了启用这些,我将使用:
cmake_minimum_required(VERSION 3.19)
project(RISA LANGUAGES CXX CUDA)
set(CMAKE_CXX_STANDARD 17)
set(CMAKE_CUDA_STANDARD 17)
Run Code Online (Sandbox Code Playgroud)
这会导致错误消息:
Target "RISA" requires the language dialect "CUDA17" (with compiler extensions), but CMake does not know the compile flags to use to enable it.
仔细检查CMAKE_CUDA_COMPILE_FEATURES变量揭示了cuda_std_03 cuda_std_11 cuda_std_14。出于某种原因,CMake 似乎不知道 C++14 以后有关 CUDA 的任何内容。
我正在运行 ubuntu 20.04
我该怎么做才能使用此设置配置和编译 C++17?
我知道这个问题 - 但是仅使用 C++14 编译 cuda 文件的解决方案对我来说并不够。
事实证明,CMake 没有使用正确的nvcc二进制文件。
就我而言,系统上有两个版本的 nvcc:
nvcc v10.1.243在/usr/bin和nvcc v11.2.152在/usr/local/cuda-11.2/bin在我的 CMake 配置中,
CUDA_NVCC_EXECUTABLE被设置为/usr/local/cuda-11.2/bin,但是CMAKE_CUDA_COMPILER被设置为旧版本/usr/bin。设置正确的路径后CMAKE_CUDA_COMPILER,CMake 能够检测nvcc 11.2.152并应用 C++17 标准。
| 归档时间: |
|
| 查看次数: |
5480 次 |
| 最近记录: |