Linker 为什么调用静态链接器而不是预处理器?

Linker 为什么调用静态链接器而不是预处理器?,linker,preprocessor,static-libraries,Linker,Preprocessor,Static Libraries,假设我们有一个静态库,我们想将它用于我们的主.c文件,现在问题是 为什么我们必须调用链接器ld?既然我们所做的就是将静态库中的代码复制粘贴到main.c文件中 预处理器不能处理这个问题吗?它可以做到这一点,就像用鱼砍树一样。这不是它设计的目的 预处理器阶段意味着在进入编译阶段之前对源代码进行变形。虽然有些人可能会抱怨它看起来有多么不足,但实际上它确实很好地完成了这项工作 另一方面,链接器根本不理解源代码。它的主要目的是把可能来自C、C++、NASM、GFRTRAN、BCPL或甚至更奇异的编译器的

假设我们有一个静态库,我们想将它用于我们的主.c文件,现在问题是

为什么我们必须调用链接器ld?既然我们所做的就是将静态库中的代码复制粘贴到main.c文件中

预处理器不能处理这个问题吗?

它可以做到这一点,就像用鱼砍树一样。这不是它设计的目的

预处理器阶段意味着在进入编译阶段之前对源代码进行变形。虽然有些人可能会抱怨它看起来有多么不足,但实际上它确实很好地完成了这项工作


另一方面,链接器根本不理解源代码。它的主要目的是把可能来自C、C++、NASM、GFRTRAN、BCPL或甚至更奇异的编译器的对象文件结合起来,创建一个能够在目标系统上运行的可执行文件。< / P>是的,它可以,但是它没有。@ StutARsieGell有什么原因不?