Visual studio Visual Studio以什么顺序编译源文件?

Visual studio Visual Studio以什么顺序编译源文件?,visual-studio,compiler-construction,build,dependencies,Visual Studio,Compiler Construction,Build,Dependencies,我在VisualStudio 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"

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

顺便问一句,你为什么关心编译顺序?@StefanoSanfilippo有时我看到VS先编译一个文件,所以我想你不能强制构建顺序。你要找的是一个功能原型。你通常把它们放在一个.h文件中,只需在谷歌上搜索“c++函数原型”。在你的C++语言中,你也有一本书吗?你不能强迫构建顺序。对于.h文件中的函数原型,您不关心构建顺序。