Intellisense在Visual Studio 2019中不适用于CMake CUDA项目

问题描述

我有一个非常简单的CUDA项目:

cmake_minimum_required(VERSION 3.17)

project(simpleCuda LANGUAGES CXX CUDA)

add_executable(simpleCuda)

target_sources(simpleCuda PUBLIC main.cu)

target_compile_features(simpleCuda PUBLIC cxx_std_17)

我可以打开该文件夹并构建/运行可执行文件。但是,所有CUDA智能感知都混乱了(__global__cudaMalloc等)。我想念什么吗?请在下面查看我的CMakeSettings.json

{
  "configurations": [
    {
      "name": "x64-Debug","generator": "Visual Studio 16 2019 Win64","configurationType": "Debug","inheritEnvironments": [ "msvc_x64_x64" ],"buildRoot": "${projectDir}\\build\\${name}","installRoot": "${projectDir}\\install\\${name}","cmakeCommandArgs": "","buildCommandArgs": "","ctestCommandArgs": "","variables": [],"intelliSenseMode": "windows-msvc-x64"
    }
  ]
}

和CMake目标视图:

enter image description here

请注意,C ++的智能感知也很混乱。我没有任何自动完成功能。

解决方法

Intellisense在Visual Studio 2019中不适用于CMake CUDA项目

我认为您应该使用include_directories("xxxx"//contain the CUDA library path)文件中的添加CMakeLists.txt来包含 CUDA 用于Intellisense的库。

在每个CMakeLists.txt文件中添加此文件:

include_directories("C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v10.2\include")

此外,如果仍然无法正常运行,请执行以下步骤:

1)关闭VS,删除解决方案文件夹下的.vs隐藏文件夹和任何输出文件夹(如out),然后重新启动项目以再次进行测试。

2)禁用扩展菜单-> 管理扩展下的任何其他第三方vs扩展,以检查是否由某些扩展引起

3)通过工具-> 导入和导出设置-> 重置所有设置重设所有设置>

4) do a repair in VS或将其更新为最新版本

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...