error PRJ0019: 某個工具從以下位置返回了錯誤代碼: "正在執行自定義生成步驟" ( custom build steps error)

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


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章