在VS环境运行CUDA kernel.cu示例程序出现MSB3721错误、C1083、E0029报错的解决方案

出现报错

第一次安装CUDA,并在VS中运行,遇到了E0029、MSB3721等报错。

其实 E0029 报错不影响程序的正常编译、执行,可以选择忽略。出现此错误的原因是IDE的语法检查器无法识别CUDA的特殊语法,但并不影响编译器对源码的编译,因此可以忽略。

然后就是MSB3721报错。我尝试了网上的各种方法,均没有解决问题。最后自己仔细阅读了VS调试后生成的”输出“内容,发现有一个C1083的报错。此错误在编译器找不到所需的文件时生成。紧接着阅读出现C1083报错附近的上下文内容,发现原因在于自己系统的用户名使用了中文 ,出现了乱码,C:\Users\???\source\……

错误的原因终于定位好了,就是编译生成的临时文件会默认存放在自己的User文件夹下,一旦户名使用了中文,路径就会出错,从而导致编译器找不到生成的文件。接下来的任务就是彻底修改系统用户名即可。

修改步骤如下:

彻底修改User文件名

步骤一:开启Administrator账户

①运行命令提示符

按Win+X组合键,以管理员身份运行命令提示符窗口

②启用Administrator帐户

输入以下mingnet user administrator /active:yes

③切换Administrator账户

在当前用户开始处 ⇒ 点击左键 ⇒ 账户 ⇒ Administrator

步骤二:Win10将中文登录用户文件夹名改为英文名

①找到目标目标文件夹(C:\Users

注意:修改文件名之前需要重启一下电脑,否则会出现提示其中的文件夹或文件已打开。

②进入注册表编辑器

Windows键+R打开运行,输入regedit,点击确定打开Windows注册表管理器。

③修改ProfileImagePath值

依次展开HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Profilelist,在Profilelist下的文件夹对应系统中用户,而文件夹中ProfileImagePath值是指向每个用户文件夹的地址,一个个点击查看,找到用户名对应的ProfileImagePath值。将原来的中文用户名修改为英文。

步骤三、关闭Administrator账户

以管理员身份运行命令提示符窗口

输入以下命令:net user administrator /active:no

最后重启电脑,切换至原来的账户。发现User文件名成功修改为英文。

完成上述三步,系统的用户名就修改完成了!

此时,再去编译运行程序,就能正常执行了。

启示:①解决报错的最好办法还是亲自去看debug的输出结果,这样能准确定位问题,快速解决问题。避免浪费大量时间在网上查找不适配的解决方案。②系统用户名千万别使用中文!!!使用英文字母,以避免难以察觉的路径错误。

希望我的文章能够帮助更多同伴少走弯路。

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值