我會給你看我的誤解。C++第一次編譯
- 它說,必須有在bat文件
- 德爾* .OBJ它說,必須有一個OBJ文件
- 它說obj的文件必須實際上是一個CPP文件
請給我看看你的解釋。
http://computerprogramming.suite101.com/article.cfm/the_borland_win32_compiler_guide
謝謝!
我會給你看我的誤解。C++第一次編譯
請給我看看你的解釋。
http://computerprogramming.suite101.com/article.cfm/the_borland_win32_compiler_guide
謝謝!
你的問題有點混亂,但我會嘗試一下。
通常,您有一組C++源文件,例如x.cpp
和y.cpp
。
編譯階段將採取這些並創建,例如,x.obj
和y.obj
。
鏈接階段將採取這些並創建一個單一的可執行文件,例如xy.exe
。
1 /在批處理文件中有一個"del *.obj"
的原因是刪除所有的目標文件,以便make可以重新創建它們。 Make(如果您在makefile中使用智能規則)只會重建所需的東西(例如,如果當前obj
文件的日期比它晚,它將不會將cpp
文件編譯爲obj
文件)。刪除目標文件將強制創建一個新目標文件。
2 /有沒有有是一個目標文件,這些通常是從c
或cpp
源文件創建的。另外,可以將編譯階段和鏈接階段組合起來,這樣就不會創建任何目標文件(或者一旦完成就快速銷燬)。
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%變量來獲得你想要的。
我試圖 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