Ekidohna 2023-06-01 23:54 采纳率: 100%
浏览 66
已结题

CUDA 11.6+VS2022+Windows10 官方示例代码无法编译,报错 msb3721,如何解决?

我参考了以下这些博客配置 CUDA,尝试的版本号包括 11.6, 11.7,11.8,但是均无法使 VS2022 正常编译,报错信息包含 msb3721。

捣鼓了也有好几晚上了,cuda toolkit 不同版本下载卸载也有好多次了,但是始终无法编译示例代码。

现在我按照以上的博客内容,配置了 windows10+vs2022+cuda11.6,下载了官方示例代码,并随意打开了一个文件 clock.cu,以下是报错信息:

img

以下是相关的环境变量配置

img


img

以下是相关命令测试

img


img


img

将 VisualStudio 的编译命令复制出来之后手动复制到 cmd 中运行,不显示任何额外信息,直接退出。

尝试用 nvcc 编译器编译一个 helloworld.cpp 程序,结果是

img

我不确定是不是由着引起的,但是我确实无法手动用命令编译。

感谢各位前来帮助!如果能帮我解决问题的话,我将无比感激!

  • 写回答

2条回答 默认 最新

  • Ekidohna 2023-06-04 00:04
    关注

    我的问题最终解决了。
    问题的核心就在于手动使用使用 nvcc 编译时产生的错误”Couldn't set environment for ...“。这个错误有两种可能的原因(也可能更多,但我没遇到过):

    1. Path 变量中,有空格的项没有加引号。
    2. Temp 或者 Tmp 变量指向的目录存在空格

    我是第二种情况。这个解决方式实际上在 这篇 StackOverflow 问答 里已经提到了,但是我一开始没有往这个方向怀疑,所以没有尝试。

    解决方法就是直接改 Temp 和 Tmp 变量,把它们改到一个没有空格的目录(加引号不行,因为 nvcc 会在这个目录里面的目录新建东西,加引号会阻止它访问里面的路径),然后删掉原先的目录。这个目录删了也问题不大,杀毒软件清理空间的时候也是直接删。

    过段时间我会把我这几天艰辛的配置过程中遇到的三四个问题写成博客发出来,以供参考。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 6月12日
  • 已采纳回答 6月4日
  • 创建了问题 6月1日

悬赏问题

  • ¥15 无源定位系统的时差估计误差标准差
  • ¥15 请问这个代码哪里有问题啊
  • ¥20 python--version在命令端输入结果Python is not defined怎么办?还有pip不是exe格式是不是没安装成功?
  • ¥15 通过GaussianView进行结构微调消除虚频
  • ¥15 调用transformers库
  • ¥15 由于导出的数据名字中带有/,导致Matlab打不开,怎么办?
  • ¥15 新硬盘安装的程序总是崩溃,提示遇到错误
  • ¥15 openpcdet自制数据集评估bev精度和3d精度相同
  • ¥15 excel 上下按钮 显示行
  • ¥20 云卓h12pro 数传问题