无法在VS 2015中编译CUDA代码

时间:2016-09-30 22:14:48

标签: c++ visual-studio-2015 cuda

我最近在我的Windows 10桌面上安装了Cuda 8.0 toolkit(删除了所有v7.5组件后)。尽管以前的版本与Visual Studio 2015不兼容,但我很高兴看到Nsight实际上可以创建一个CUDA项目,并且样本附带了VS 2015版本的 .sln 文件。

问题在于,在编译样本时,我会收到类似这样的错误:

  

1> C:\ Program Files(x86)\ MSBuild \ Microsoft.Cpp \ v4.0 \ V140 \ BuildCustomizations \ CUDA 8.0.targets(168,9):错误MSB4062 :“无法从程序集C:\ Program Files(x86)\ MSBuild \ Microsoft.Cpp \ v4.0 \ V140 \ BuildCustomizations \ Nvda.Build.CudaTasks.v8.0.dll加载Nvda.Build.CudaTasks.SanitizePaths“任务。无法加载文件或程序集“Microsoft.Build.Utilities.v3.5,Version = 3.5.0.0,Culture = neutral,PublicKeyToken = b03f5f7f11d50a3a”或其依赖项之一。该系统找不到指定的文件。确认声明是否正确,程序集及其所有依赖项是否可用,以及该任务是否包含实现Microsoft.Build.Framework.ITask的公共类。

另一件奇怪的事情是,今天早些时候,我能够在我的笔记本电脑中编译CUDA样本,其区别仅在于它安装了VS2015 Community Edition。 有任何建议吗?

PS

包含cuda标头的deviceQuery示例:

#include <cuda_runtime.h>
#include <helper_cuda.h>

在其单个 cpp 文件中(但没有实际的 .cu 文件)是唯一一个编译并运行正常的文件(如果有的话,我有一个CUDA兼容的显卡)您想知道的是,事实上遵循了安装指南中描述的所有预安装操作。

系统详细信息

  • Windows 10 Pro
  • Cuda编译工具,8.0版,V8.0.44
  • MS Visual Studio Enterprise 2015 /版本14.0.25431.01更新3
  • Microsoft Visual Studio Enterprise 2015 /版本14.0.25431.01更新3 / Microsoft .NET Framework /版本4.6.01586
  • NVIDIA CUDA 8.0 Wizards 8.0
  • 向导创建新的NVIDIA CUDA项目和源文件。
  • NVIDIA Nsight Visual Studio Edition 5.2.0.16223

...即使某人使用相同设置成功/失败的报告也会有所帮助

1 个答案:

答案 0 :(得分:6)

if(data == '1')... 程序集依赖于 MS .NET Framework 3.5 ,在它上面Nvda.Build.CudaTasks.v8.0.dllMicrosoft.Build.Utilities.v3.5.dll汇编。

  

无法加载文件或程序集&#39; Microsoft.Build.Utilities.v3.5,Version = 3.5.0.0,Culture = neutral,PublicKeyToken = b03f5f7f11d50a3a&#39;或其中一个依赖项。该系统找不到指定的文件。

错误表示您未安装 MS .NET Framework 3.5 或安装已损坏。

要检查是否已安装&#34;在“开始”菜单中打开或关闭Windows功能&#34; 或转到Microsoft.Build.Framework.dll。如果未选中 .NET Framework 3.5 ,请安装它。

否则您应该验证并修复安装。使用.NET Framework Setup Verification tool。它验证一个或多个版本的 MS .NET Framework 的安装状态。如果发现错误,请使用.NET Framework Cleanup Tool删除 MS .NET Framework 3.5 并重新安装。