一千萬個為什麽

搜索

DOS報告的錯誤:文件號錯誤


我有一個批處理文件,嘗試使用Borland C ++ Builder 6.0編譯靜態庫

它是從Borland make(使用bpr2mak創建的makefile)調用的,它是從.bat文件調用的(用於使用Visual Studio和一些Borland C ++ Builder遺留項目編譯整個項目),這是從在Cygwin中運行的bash shell腳本調用的。

當我直接從Cygwin shell運行.bat文件時,它運行正常,但當它從一個使用Boost :: Process :: launcher調用cygwin的程序運行時,我收到此錯誤:

C:\ ARQUIV~1 \ Borland \ CBUILD~1 \ Bin \ .. \ BIN \ TLib/u bclibs.lib @ MAKE0000。@@@
DOS報告錯誤:文件號錯誤
TLIB 4.5版權所有(c)1987,1999 Inprise Corporation
打開'MAKE0000。@@@'
**錯誤1 **刪除bclibs.lib

這是一個復雜的場景,但只要我們需要構建我們需要為各種Linux distos和Windows 32和64位構建的軟件包,這個調用cygwin的程序就會運行。

註意:這是唯一的Borland項目失敗,其他編譯得很好(它也是使用borland的唯一靜態庫,所以它可能是 TLib 工具的一些問題。

最佳答案

The problem was that TLib does not like to have his output redirected (seen here) without having an input pipe as well. Solved by creating an input pipe to in the Boost::Process::launcher using set_stdin_behavior

轉載註明原文: DOS報告的錯誤:文件號錯誤

猜你喜歡