为什么g++、gcc、clang++等仅在编译之外才被称为“编译器”?[已关闭]

sc4hvdpw  于 2023-10-16  发布在  其他
关注(0)|答案(1)|浏览(135)

已关闭,此问题为opinion-based。它目前不接受回答。
**想改善这个问题吗?**更新问题,以便editing this post可以用事实和引用来回答。

上个月关门了。
Improve this question
如果构建过程涉及preprocessing, compilation, assembly and linking,为什么执行这些任务的工具只被称为“编译器”?
这是一个简单的问题,但同时也是一个误导。

bq3bfh9z

bq3bfh9z1#

虽然g++gccclang++和类似的东西通常被称为“编译器”,但它们包含的不仅仅是构建过程的编译阶段。
虽然这些工具执行的不仅仅是编译(例如,预处理,组装和链接),但它们的主要和最重要的角色是编译。其他任务(预处理、汇编和链接)只需从编译器调用,以实现统一的接口。
事实上,术语“编译器”可能无法完美地涵盖这些工具的所有阶段和职责,但它是一个在实践中使用的方便和熟悉的术语。开发人员和构建系统可以通过名称调用这些工具,并依赖它们来处理将源代码转换为可执行二进制文件或库的复杂性。

相关问题