1

これらのファイルを使用して、Visual Studio 2012 に C++ ライブラリ プロジェクトがあります。

A.h, A.cpp: defines function Do_A();
B.h, B.cpp: defines function Do_B();
C.h, C.cpp: defines function Do_C();

機能はこのように実装されています

void Do_A()
{
      Do_B();
}

void Do_B()
{
      Do_C();
}

void Do_C()
{
     printf("Do C");
}

ここで、A、B、C 間の依存関係を強制したいと思います。次に、ビルドします。

しかし、出力ウィンドウを見ると、

A.cpp
B.cpp
C.cpp

A が最初にコンパイルされるのはなぜですか? ソース ファイルのコンパイル順序に影響するものは何ですか?

4

1 に答える 1

3

その依存関係は、コンパイル時ではなくリンク時です (したがって、ここには表示されません)。

ビルド スクリプト内の位置は、コンパイルの順序に影響を与えます (コンパイル時の依存関係以外に、それに関する仮定はありません) が、ビルドが並列化される可能性があるため、これは部分的に正しくありません。つまり、A と B は同時に 2 つの異なるコアで構築できます。

于 2013-06-24T16:50:36.583 に答える