【发布时间】:2009-04-01 14:46:46
【问题描述】:
我有一个包含许多 *.c 文件的工作区,我对其进行编译。 (我可以使用任何工具链,比如 MSVC6.0 或 gcc 等)
先编译哪个源文件?
随后要编译的文件的顺序是如何决定的?
【问题讨论】:
标签: c makefile compilation nmake
我有一个包含许多 *.c 文件的工作区,我对其进行编译。 (我可以使用任何工具链,比如 MSVC6.0 或 gcc 等)
先编译哪个源文件?
随后要编译的文件的顺序是如何决定的?
【问题讨论】:
标签: c makefile compilation nmake
C 标准未指定编译顺序。
由于不需要像 C++ 中那样构建全局对象,因此在 C 中不存在编译顺序相关的情况。
【讨论】:
通常,这在任何地方都没有指定。特别是在使用例如。并行make,编译顺序几乎是任意的。
【讨论】:
VC:按项目文件夹,然后按字母顺序。
GCC:按make文件顺序
为什么这很重要?完成顺序不计且不影响最终构建结果。
【讨论】:
make:
作为jpalecek suggests,并发构建可能更复杂。
一些来自 GNU make 文档的引述:
目标的双冒号规则按照它们在 makefile 中出现的顺序执行。
...
如果您指定多个目标,请按照您命名它们的顺序依次为每个目标创建流程。
【讨论】:
如果这很重要,那么您确实需要在您的 makefile 中设置依赖项,以确保某些依赖项先于其他构建。真的,您应该首先问自己为什么这很重要。
【讨论】: