2009-07-18 73 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