【问题标题】:Intellisense not working for CMake CUDA project in Visual Studio 2019Intellisense 不适用于 Visual Studio 2019 中的 CMake CUDA 项目
【发布时间】:2020-12-03 04:38:55
【问题描述】:

我有一个非常简单的 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 目标视图:

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

【问题讨论】:

  • 您是否尝试过创建普通的 Visual Studio 项目?
  • 如果我这样做,它根本不会使用 CMake,不是吗?
  • 这个问题应该向微软提出,因为它是一个非常昂贵的专有软件,应该支持它。顺便说一句,我们使用的是在 Linux 上构建的 VS 2019 CMake 项目。智力对我从来没有用过。

标签: visual-studio cmake cuda intellisense


【解决方案1】:

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

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

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

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

另外,如果还是不行,请按以下步骤操作:

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

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

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

4) do a repair in VS 或更新到最新版本

【讨论】:

  • VS 不支持“现代”CMake 目标?从技术上讲,当我执行find_packagetarget_link_libraries 时,CMake 知道这些包含目录。我会尝试其他步骤,看看它是否能解决问题。
  • 还有,重启项目能成功吗?你的智能感知会搞砸,这很奇怪。所以请尝试以下步骤来检查它是否有帮助。
猜你喜欢
  • 2023-04-06
  • 2021-01-16
  • 2021-06-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-04-05
  • 1970-01-01
相关资源
最近更新 更多