2009-07-18 69 views

回答

2

你的問題有點混亂,但我會嘗試一下。

通常,您有一組C++源文件,例如x.cppy.cpp

編譯階段將採取這些並創建,例如,x.objy.obj

鏈接階段將採取這些並創建一個單一的可執行文件,例如xy.exe

1 /在批處理文件中有一個"del *.obj"的原因是刪除所有的目標文件,以便make可以重新創建它們。 Make(如果您在makefile中使用智能規則)只會重建所需的東西(例如,如果當前obj文件的日期比它晚,它將不會將cpp文件編譯爲obj文件)。刪除目標文件將強制創建一個新目標文件。

2 /有沒有是一個目標文件,這些通常是從ccpp源文件創建的。另外,可以將編譯階段和鏈接階段組合起來,這樣就不會創建任何目標文件(或者一旦完成就快速銷燬)。

3 /目標文件不一定是cpp文件,但它通常由具有相同基本名稱的cpp文件構建。

更新基於評論:

如果你想一次指定應用程序的名稱,您的評論有它這樣的(我認爲,格式是不是很大正如你所指出):

PATH=C:\BORLAND\BCC55\BIN;%PATH% 
    APP=MyApp 
    del *.exe 
    del *.obj 
    del *.res 
    make -f$(APP).mak >err.txt 
    if exist $(APP).exe goto RUN_EXE 
:EDIT_ERR 
    call notepad.exe err.txt 
:RUN_EXE 
    call $(APP).exe 
    if exist err.txt delete err.txt :END 

我想你需要的是:

PATH=C:\BORLAND\BCC55\BIN;%PATH% 
    set APP=MyApp 
    del *.exe 
    del *.obj 
    del *.res 
    make -f%APP%.mak >err.txt 
    if exist %APP%.exe goto :RUN_EXE 
:EDIT_ERR 
    call notepad.exe err.txt 
    goto :END 
:RUN_EXE 
    call %APP%.exe 
    if exist err.txt delete err.txt 
:END 

你有你的"$(APP)"換人什麼是someth這將在makefile中工作,但不在cmd文件中。在那裏你需要使用%APP%變量來獲得你想要的。

+0

我試圖 PATH = C:\ BORLAND \ BCC55 \ BIN;%PATH% APP = MyApp來 德爾* .EXE 德爾* .OBJ 德爾* .RES 化妝-f $(APP)的.mak呃。TXT 是否存在$(APP)的.exe轉到RUN_EXE :EDIT_ERR 通話的notepad.exe err.txt :RUN_EXE 調用$(APP)是否存在err.txt刪除err.txt .EXE :END 但有沒有辦法寫一次MyApp(該命令沒有被識別)? – 2009-07-18 10:37:52