vs编译报错error MSB3191无法创建目录

在使用vs编译时报错

先说我这个问题的解决方法再分析,修改属性->链接器->生成数据库文件选项,设置一个正常的路径就可以了,或者设置为$(TargetDir)$(TargetName).pdb。

从错误提示可以明显的看出提示无法创建目录的路径是一个错误的路径我们只要将路径修改正确应该就可以了,而对于各种路径和编译参数设置都是在属性中设置的,但是属性中相关设置项太多了我们怎么才能快速定位呢?这里有两个定位办法。

方法一:

vs编译报错error MSB3191无法创建目录_第1张图片

当你不知道具体是哪个选项的设置时在每个大的设置选项下都有一个命令行这里面包含了所有当前target下的设置,可以将命令行中的内容拷贝出来然后搜索报错提示内容定位到具体的target再逐个检查修改。

方法二:

vs编译报错error MSB3191无法创建目录_第2张图片

从图示中我们可以很清楚的看到当前vs正在执行的操作是在创建目录并且失败,看图中红框标识的内容只要英语不是太差可以知道当前正在为link创建目录,而在属性设置中就有链接器这个选项所以我们知道这个错误是我们链接器下某个选项设置错误,我们就能很快定位到错误了。

另外针对方法二扩展一下,当我们在vs中点击生成后解决方案后(F7)会进行语法检查、编译、链接最后生成我们的可执行文件,这些步骤可以称为一个个targets,在我当前使用的这个版本vs2015针对这个错误双击错误行会打开文件Microsoft.CppBuild.targets,里面包含了整个生成解决方案执行流程有兴趣的可以自行了解,搜索当前target MakeDirsForLink可以发现当前target属于Link targets所以可以去链接器里查找。当我们对生成流程有一定了解当生成是发生错误可以有助我们更快定位问题所在。

你可能感兴趣的:(VS)