error PRJ0019: 某个工具从以下位置返回了错误代码: "正在执行自定义生成步骤"
对于新手来说“”自定义生成步骤”是一个比较陌生的错误,首先要知道,这是VC工程的中的一个选项。位置就在(以vs2008为例)项目--》属性--》 配置属性--》自定义生成步骤(注意这个属性一般是文件(version.h)级的,而非工程级(A.vcproj)的)。
通常,这个选项的作用是在工程编译之前,首先调用外部命令或者批处理命令生成一些工程编译时需要的文件。
例如: A.vcproj
|_ Main.c
|_ version.h
|_ curVer.c
A工程,其中的curVer.c 文件,是通过调用我自己写的批处理程序 MakeNewVersion.bat 对version.h进行处理来生成的。 那么我们需要在version.h文件上右键--》属性--》自定义生成步骤中添加参数如下:
命令行: ”$(InputDir)MakeNewVersion.bat“ ”$(ProjectPath)version.h”
说明 : 默认
输出: “($Path)curVer.c” 注意:如果没有添加此项,自定义生成步骤将不会生效
附加依赖项: ”$(ProjectPath)version.h” 此项是命令行中需要的参数
保存!这样在编译工程A的时候,会优先编译出curVer.c再进行整个工程的编译。
错误排查:error PRJ0019: 某个工具从以下位置返回了错误代码: "正在执行自定义生成步骤"
原因:通常这个错误至的是命令行无法被正确解析。这个问题容易出现在从VC6转移到VC2008等更高级编译上的时候出现。由于对宏解析的不同,造成语法出现问题。
解决办法:在VC6中的命令行没有双引号 $(InputDir)MakeNewVersion.bat $(ProjectPath)version.h
更新到VC2008中需要在有宏定义的位置手动添加双引号 ”$(InputDir)MakeNewVersion.bat“ ”$(ProjectPath)version.h”
更具体的注意事项可以参考MSDN:
https://msdn.microsoft.com/zh-cn/library/hefydhhy(VS.80).aspx