我会表明我的误解。
请告诉我你的解释。
http://computerprogramming.suite101.com/article.cfm/the_borland_win32_compiler_guide
谢谢!
答案 0 :(得分:2)
你的问题有点令人困惑,但我会尝试一下。
通常,您有一组C ++源文件,例如x.cpp
和y.cpp
。
编译阶段将采用这些并创建,例如x.obj
和y.obj
。
链接阶段将采用这些并创建单个可执行文件,例如xy.exe
。
1 /批处理文件中有"del *.obj"
的原因是删除所有目标文件,以便make可以重新创建它们。 Make(如果你在makefile中使用智能规则)只会重建所需的东西(例如,cpp
文件如果当前{{1}将不会被编译为obj
文件文件的日期晚于它)。删除目标文件将强制创建一个新文件。
2 / 没有作为目标文件,这些文件通常是从obj
或c
源文件创建的。此外,您可以组合编译和链接阶段,以便不会创建任何目标文件(或者一旦完成就会很快销毁)。
3 /目标文件不必是cpp
文件,但它通常是从具有相同基本名称的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
替换的内容可以在makefile中使用,但不能在cmd文件中使用。你需要使用%APP%变体来获得你想要的东西。