首页 > 解决方案 > C++ IntelliSense 指向包含库的错误版本

问题描述

我有一个C++静态库项目,编译时没有任何错误,也不会在Error list窗口中显示任何错误。所以一切似乎都正常。除了当我尝试打开源代码(CTRL+左键单击库或库特定项目)时,会打开不正确版本的文件。为什么?

详细说明。我有CUDA 9.1CUDA 9.2CUDA 10.2安装在我的PC. 我的项目有以下CUDA Linker配置:

CUDA linkerCommand line有:

"C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v10.2\bin\nvcc.exe" -dlink -o x64\Debug\Core3.device-link.obj -Xcompiler "/EHsc /nologo /Zi" - L"C:\Program Files\NVIDIA GPU 计算工具包\CUDA\v10.2\lib\x64" cudart.lib

CUDA C/C++Command line有:

在此处输入图像描述

所以,看起来还可以。但是在代码中,当我单击任何包含时-它们指向9.2源。例子:

#include <cuda.h> 
#include "cuda_runtime.h"
#include <device_launch_parameters.h> 

路径为:C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\ v9.2 \include

在此处输入图像描述 在此处输入图像描述

此外,我检查了环境变量。都好。还检查了props文件中使用了哪些.vcxproj文件。属性CUDA 10.2.props无处不在。

所以我的问题是 - 为什么IntelliSence仍然认为我使用的是旧版本CUDA?更重要的是 - 我如何让他使用正确的10.2版本?

编辑1:评论中要求提供更多信息。包括目录 - 使用默认值。

在此处输入图像描述 在此处输入图像描述 在此处输入图像描述 变量检查:在此处输入图像描述 在此处输入图像描述

标签: c++visual-studiocudaintellisensevisual-studio-2019

解决方案


@Neywat 建议删除该IntelliSense文件夹并且它有效。

我不得不删除.vs解决方案目录中的整个文件夹。

但问题仍然存在 - 这是一个已知问题吗?微软团队是否意识到这一点?关于.vs文件夹生命周期的建议是什么?我们应该不时清理它吗?


推荐阅读