如何使CMake在CCU中使用clang支持c ++ 17

问题描述

根据this question,可以通过使用clang将c ++ 17与cuda一起使用。但是,我找不到如何设置CMakeLists.txt来完成此操作。

我通过以下方式启用c ++ 17

add_compile_options(-std=c++17)

开箱即用以下内容

    enable_language(CUDA)

nvcc抱怨

nvcc fatal   : Value 'c++17' is not defined for option 'std'

根据建议的here添加以下内容

    set(CUDA_HOST_COMPILER clang++)
    set(CMAKE_CUDA_COMPILER /usr/bin/clang++)

clang抱怨

clang: error: language not recognized: 'cu'

解决方法

尝试

set(CMAKE_CXX_STANDARD 17)