我会给你看我的误解。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