c++ - 链接器是否存在于所有编译的编程语言中?

标签 c++ compiler-construction linker

<分区>

它确实存在于 C/C++ 中,但我不确定任何其他编程语言。我只是好奇链接器是否存在于所有编译的编程语言中,或者是否每个语言创建者都决定如何编译代码?

对于 Benj:我指的是本地语言,而不是像 CLR 这样的托管代码。

最佳答案

严格来说,链接器不是语言的一部分,而是语言实现的一部分。 (此外,语言本身并不是“编译”或“解释”的——这些也是实现的两个特征)。

链接器允许语言实现者实现“单独编译”。单独编译是一个非常重要的特性,它允许程序的单独部分的物理解耦和允许部分构建(这可以减少总构建时间)。出于这个原因,大多数输出​​ native 二进制文件的语言的实现都将使用链接器作为其实现的一部分。

也就是说,链接器不是语言编译实现的必需部分,并且可以想象某些语言实现不会使用链接器(考虑一个学生项目来编写一个语言并实现它——如果这种语言不希望用于任何大型程序,那么花在实现/集成链接器上的时间可能被认为是不值得的。

关于c++ - 链接器是否存在于所有编译的编程语言中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10397906/

相关文章:

c++ - 如何在不同的文件中声明变量?

c++ - 强制我的 MFC 应用程序在 Vista 上以管理员身份运行

java - NetBeans 使用哪个 Java 编译器?

parsing - 自定义编程语言 : how?

java - 从字符串编译 Java 源代码?

c++ - xamarin ios 绑定(bind)上的 native 链接错误

c++ - GNU Linker 找不到本地共享库

c++ - Qt paintevent() 未触发

c++ - "-Wl,--no-undefined -Wl,--no-allow-shlib-undefined"链接错误

c# - C++ memcpy 到 C# 等价物