动态绑定和动态链接

时间:2011-03-27 14:32:10

标签: terminology compilation linkage

  1. 引自Dynamic Binding C++

      

    动态绑定是正交的   动态链接...

    我想知道如何理解 正交的含义“?是吗? 因为

    • 将源代码编译成机器代码就像深入,各种机器代码的链接就像是水平的,所以它们是相互正交的,

    • (静态/动态)名称绑定是编译中的一个概念

    • 静态/动态链接是链接中的一个概念吗?

  2. 如果在动态链接中,任何涉及的绑定,即任何涉及的绑定 对象关联(数据和/或 带有标识符的代码是动态的 结合

  3. 谢谢!

1 个答案:

答案 0 :(得分:3)

“正交”意味着一个人的存在或状态(在一个更抽象的意义上)完全不依赖于另一个人的相应状态。在这种特定情况下,它意味着无论是否发生动态绑定,都可能发生动态链接,反之亦然。

作为一个实际示例,请考虑动态绑定是运行时由于源代码中存在的函数调用而应执行的代码段的解析。该段代码可以存在于在链接时链接到可执行文件的库中(静态链接),或者它可以存在于在运行时动态加载的库中(动态链接)。 绑定部分不关心链接是如何完成的;因此,它与后者正交

你也问:

  

如果在动态链接中,任何涉及的   绑定,即任何涉及的   对象关联(数据和/或   带有标识符的代码是动态的   结合?

这个问题没有意义,因为链接进程中没有绑定。绑定可以静态发生(由编译器解析并烘焙到目标代码中)或动态发生(在运行时解析),但是如何绑定和解析绑定的逻辑的决定根本不与链接交互。