命令“"xxx.exe" xxx”已退出,代码为 n。这些错误是什么意思?(3 / 123 / 9009)

 

命令“”xxx.exe” xxx”已退出,代码为 n。

我们在 cmd 中输入常见命令的时候,如果命令输入错误或使用错误,cmd 中会提示错误原因,帮助我们定位并解决问题。然而如果相同的命令放到了 Visual Studio 的生成事件中,我们就只能得到 Visual Studio 返回的错误代码了。为了能够快速地根据错误代码大致猜测错误原因,本文整理了一部分错误代码的通用原因。我会在遇到新的错误后,更新这篇博客(和它的原文:https://walterlv.github.io/post/error-code-in-vs-build-events.html)。


命令的格式为:

命令 参数1 参数2 参数3

 

错误代码: 3

系统找不到指定的路径。

这意味着我们在编译生成命令中写的“命令”部分,在那个路径下并不存在命令中写的可执行文件。比如:

  • 文件或文件夹的名称写错了,或者写上级目录时“..”的层数不对
  • 依赖的是一部分人开发环境中才有的可执行文件,如果你的开发环境中没有这个文件,就会是此错误
  • 依赖的文件需要提前生成但还没有生成,某些 BT 的项目会要求先执行一些编译命令以生成命令的可执行文件

错误代码: 123

文件名、目录名或卷标语法不正确。

如果路径字符串根本无法拼出路径,就会引发此错误。比如:

  • D:\walterlv.github.io\D:\Bin\Debug 这样的路径就是不合理的

一般人当然不会写出这样的命令出来,但如果路径中间有一些环境变量作为占位符,实际执行时本来期望填入相对路径的地方填入了绝对路径就会这样。

错误代码: 9009

‘xxx’ 不是内部或外部命令,也不是可运行的程序或批处理文件。

  • 命令写错了,而不是可执行文件写错了
    • 比如 xcopy 写成了 xcapy
  • 可执行文件因为缺少引号包括路径中的空格,导致被识别成无法识别的命令
    • 比如 C:\Program Files\XXX 因为没有引号的包裹,被识别成了 C:\Program 命令

 

posted @ 2018-03-19 19:43  walterlv  阅读(547)  评论(0编辑  收藏  举报