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