【发布时间】:2014-08-09 11:03:08
【问题描述】:
为什么编译的编程语言(例如 C++)被设置为创建许多链接在一起的对象文件,而不是创建一个大对象?
例如(用 C++ 编写,可以适用于任何编译语言),考虑项目中的两个文件 main.cpp 和 auxiliary.cpp。将main.cpp 和auxiliary.cpp 编译为main.o 和auxiliary.o 然后链接到main.exe 和main.cpp 与#include auxiliary.cpp 之间有什么区别@ 仅编译为main.o 并链接到@ 987654331@?据我所知,这些至少表面上会产生相同的结果。
在多语言项目的情况下,我看到了多个对象的必要性,但并非如此。多个对象是否以某种方式为链接器在创建可执行文件时提供了更大的灵活性?
【问题讨论】:
-
如何在包含数千个类的数十万行的单个 cpp 文件中找到任何内容?此外,当我更改 1 行时,我不想等待 1 小时来编译。
-
使用
#include预处理器命令,源文件对用户来说是多个文件,但对编译器显示为一个文件。 -
编译时间会过长。
标签: c++ compiler-construction linker object-files