出现报错
第一次安装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的输出结果,这样能准确定位问题,快速解决问题。避免浪费大量时间在网上查找不适配的解决方案。②系统用户名千万别使用中文!!!使用英文字母,以避免难以察觉的路径错误。
希望我的文章能够帮助更多同伴少走弯路。