私は誤解をお見せします。C++初めてコンパイルする
- は、それはOBJファイルが存在しなければならないと言うbatファイル
- デル* .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
を作成します。
リンクフェーズではこれを使用して、実行可能ファイルを1つ作成します(例:xy.exe
)。
1 /バッチファイルに"del *.obj"
があるのは、すべてのオブジェクトファイルを削除してmakeが再作成できるようにするためです。 make(メイクファイルでインテリジェントなルールを使用している場合)は、現在のobj
ファイルの日付がそれよりも古い場合、ファイルにファイルcpp
がコンパイルされないように、必要なものだけを再構築します。オブジェクトファイルを削除すると、強制的に新しいファイルが作成されます。
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%バリアントを使用する必要があります。
私は= C PATH試してみました:\ BORLAND \ BCC55 \ BINを;%PATH% APP = MyAppの デル* .exeの デル* .objファイル デル* .resファイル メイク-f $(APP).MAK間違いTXT 場合は、.exeの後藤RUN_EXE $(APP)の存在:EDIT_ERR 通話メモ帳err.txt :err.txt を削除err.txt存在する場合RUN_EXE コール$(APP)は をexeファイル:END をが、 MyAppを一度書く方法があります(コマンドが認識されていません)。 –
インデントしていないのはなぜですか? –
Pax、あなたの答えは多くのことをクリアに役立ちます!ありがとう! –