none
.h ファイルを変えたときの分割コンパイル RRS feed

  • 質問

  • こんにちは!

    以下のようにファイルの構成があるとします:

    main.cpp   --エントリーポイントを含む

    main.h      --main.cppのheader file 

    dep.cpp    --アプリケーションのレイヤー

    dep.h       --dep.cppのheader file

    このとき、まずdep.cppに手を加えた後にF7を押してソルーションのビルドを行うと、dep.cppのみがコンパイルされ、main.cppのコンパイルは省略されます。良いことです。

    しかし、dep.hに手を加えた後にF7を押してソルーションのビルドを行うと、dep.cppだけでなくmain.cppもコンパイルされてしまいます。

    ここでdep.hに手を加えた後にdep.cppのみがコンパイルされ、main.cppのコンパイルは省略されるようになるにはどうすればよいのでしょうか?

    もちろんここではファイル数が小さくてその必要性は感じられないでしょうが、それは便宜上アプリケーションレベルとシステムレベルのファイルを一まとめに仕立て上げたものです。

    よろしくお願いします!

    uneedshelp

    2006年11月25日 10:19

回答

  • main.cpp
    main.h

    がdep.hを参照していなければいいだけのことですよね?

    参照している以上はすべて影響を受けるものはコンパイルされます。

    2006年11月25日 11:35

すべての返信

  • main.cpp
    main.h

    がdep.hを参照していなければいいだけのことですよね?

    参照している以上はすべて影響を受けるものはコンパイルされます。

    2006年11月25日 11:35
  • さっそくのご返信ありがとうございます。

     

    そう言われてみればそうですね。

    main.cppはどこかで必ず

    callDep();

    などというdepのエントリーポイントを呼ばなければならないわけですからね。

    main.hは#include "dep.h"が必要なわけでした。dep.hが変わればmain.cppもコンパイルされなければならないですね。

     

    問題は解決不可能!で、一件落着ですか。

    ありがとうございました!

     

    2006年11月25日 11:52