2009-07-18 6 views
0

私は誤解をお見せします。C++初めてコンパイルする

  • は、それはOBJファイルが存在しなければならないと言うbatファイル
  • デル* .objファイルが存在しなければならないと言うことはOBJファイルは、実際のcppファイル

でなければならないと言う

  • あなたの解釈を教えてください。

    http://computerprogramming.suite101.com/article.cfm/the_borland_win32_compiler_guide

    ありがとう!

    答えて

    2

    あなたの質問は少し混乱しますが、私はそれを試してみます。

    通常、C++ソースファイルのグループがあります(例:x.cppおよびy.cpp)。

    コンパイルフェーズでは、これらを受け取り、たとえばx.objy.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%バリアントを使用する必要があります。

    +0

    私は= 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を一度書く方法があります(コマンドが認識されていません)。 –

    +0

    インデントしていないのはなぜですか? –

    +0

    Pax、あなたの答えは多くのことをクリアに役立ちます!ありがとう! –

    関連する問題