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 可以同时构建在两个不同的内核上。

于 2013-06-24T16:50:36.583 回答