C++编译器从哪里开始?

cla*_*amp 2 c++ compiler-construction

如果你有一个包含多个源文件的c ++项目并且你点击了编译,编译器会从哪个文件开始?

我问的是因为我在库上有一些#include-dependency问题.

编译器将是:VC2003.

Dan*_*nas 15

它不应该依赖于顺序.唯一相关的步骤是:

  1. 每个编译单元包括它所依赖的内容,并且应该单独编译.这意味着,首先,每个CPP文件包括它依赖的所有头文件; 第二,每个标题应该包含它所需要的内容,以便它可以编译,即使它是第一个要编译的.
  2. 链接步骤将所有编译的目标代码放在一起并构建最终的二进制文件.

  • 我把它的方式是:一个只包含一个`#include`的源文件应该总是编译(到.o文件)而不会出错.我有一个"hcheck"脚本,我使用它创建一个.c或.cc文件,`#include`s命令行中指定的文件,然后尝试编译它,并删除临时.c/.cc文件时完成. (3认同)

And*_*ers 5

它应该以哪个文件开头无关紧要,链接器在编译完所有文件后解析外部引用