【发布时间】:2020-06-07 20:12:46
【问题描述】:
我有一个C++ 静态库项目,它编译时没有任何错误,也不会在Error list 窗口中显示任何错误。所以一切似乎都正常。除了当我尝试打开源代码(CTRL + 左键单击库或库特定项)时,会打开不正确版本的文件。为什么?
详细说明。我的PC 上安装了CUDA 9.1、CUDA 9.2 和CUDA 10.2。我的项目有以下CUDA Linker 配置:
其他库目录:C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v10.2\lib\x64;%(AdditionalLibraryDirectories)
其他依赖项:cudart.lib;%(AdditionalDependencies)
在CUDA linker 的Command 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 Computing Toolkit\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
此外,我还检查了环境变量。都好。还检查了.vcxproj 文件中使用了哪些props 文件。属性CUDA 10.2.props 无处不在。
所以我的问题是 - 为什么IntelliSence 仍然认为我使用的是旧版本的CUDA?更重要的是 - 我如何让他使用正确的 10.2 版本?
编辑 1: 在 cmets 中要求提供更多信息。包括目录 - 使用默认值。
【问题讨论】:
-
您没有显示配置的包含目录 - 来自您的 VS 解决方案或直接来自您的 VS 安装。似乎其中之一指向 9.2 版本。
-
@Neywat 你能详细说明
or directly your VS installation吗?我应该在哪里检查?关于第一个 - 我已经编辑了帖子并附加了包含目录配置,如果这就是你的意思。使用默认值。 -
VS installation,我指的是 options 对话框 > VC++ 目录。如果您的项目不覆盖路径,那么它们是相同的。对于您的项目,C/C++item 或CUDA C/C++item 是否配置了其他包含路径? -
@Neywat 按照惯例默认用于我在原始帖子中没有提到的地方。 :) 作为证明 - 请参阅编辑。我附上了来自项目设置的多张图片,包括您询问的这些。请检查。 附言。如果图片太多,stackoverflow 社区/mods 请不要禁止我..
-
对不起,我在检查明显的:)。我想你试图删除智能感知数据库(几次救了我的命)。如果你使用预编译的头文件,也会导致奇怪的行为。
标签: c++ visual-studio cuda intellisense visual-studio-2019