gpt4 book ai didi

c++ - 我想知道我们使用的ide是否包含链接器

转载 作者:太空宇宙 更新时间:2023-11-04 05:21:49 25 4
gpt4 key购买 nike

链接器是操作系统还是编译器/IDE 的一部分?

最佳答案

它是编译器/IDE 的一部分。或者更准确地说,编译器和链接器是独立的程序(在构建可执行文件的不同阶段调用),但通常整个程序组(包括其他几个可执行文件)被称为编译器,例如海合会。

链接器不是操作系统的一部分,尽管某些操作系统(例如 Linux)可能与一个(甚至多个)链接器捆绑在一起作为某些编译器工具链的一部分。不管怎样,您可以在同一个操作系统上安装和使用多个不同的编译器(每个编译器都包含自己的链接器)。例如。在 Windows 操作系统上,您可以同时拥有 gccmsvc安装,虽然 gcc 不能与 Visual Studio IDE 一起使用,因为它只与 msvc 捆绑在一起。但是 AFAIK Eclipse可以使用任何一个。

更新:您似乎对 linker in the compiler toolchain 之间的名称相似性感到困惑和 dynamic linker操作系统。

编译器工具链的链接器在构建过程中完成它的工作,当它需要将不同的编译单元拼凑在一起以形成连贯的可执行程序时。通常,代码包含对外部库的调用;这些库可以是静态动态。静态库基本上是可执行方法的存储,链接器可以将其物理复制到可执行文件中。动态库包含不需要复制的方法;相反,链接器将对库方法的一种引用存储到可执行文件中。当可执行文件运行时,在操作系统的帮助下加载动态库,然后调用库方法。这是由操作系统的一部分完成的,不幸的是,它被称为动态链接器 - 然而这与编译器工具链中的链接器完全不同,应该被称为加载器.

动态库可以在内存中共享,即相同的库代码可以被多个可执行文件并行使用(因此它们也被称为共享库)。而从静态库复制的代码在所有可执行文件中都是重复的。

关于c++ - 我想知道我们使用的ide是否包含链接器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3654264/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com