3.然后,调用模块将静态或动态绑定到 共享库。
4.一旦您的调用库绑定到共享库,它就可以了 指定它想要绑定到 特别切入点。这是 通常由名字完成,但大多数 平台也提供选项 按索引绑定(更快,更多 如果您的模块发生变化,则会变脆 入口点重新订购。)
5.您通常也会声明要在您的电话中呼叫的功能 某个地方的模块,以便您的语言 可以做静态类型检查,知道 调用约定是什么等。
我想知道
谢谢和问候!
答案 0 :(得分:3)
动态和静态链接是在现代计算机操作系统中共享库代码的方法。
动态链接在运行时发生。它在启动时交换了一些额外的工作,用于一些不错的功能,例如允许修补/替换库,这反过来可以修复或添加到链接(绑定)到它的应用程序的功能。
静态链接是将库的某些部分复制到可执行文件中的位置。这对于启动更快,有时更便于分发,因为您不必担心收件人是否具有所有共享库。在某些情况下,它还可以节省空间。这对于嵌入式应用程序来说很常见。
http://en.wikipedia.org/wiki/Dynamic-link_library http://en.wikipedia.org/wiki/Static_library
按名称绑定是指将函数,变量和常量从库链接到应用程序,应用程序模块或其他库的过程。基本上,库是代码存档,并且有一个表指向代码在库中的每个编译位,并且链接器使用这些名称来查找所需位的位置。就像电话簿=)
绑定和链接在很多情况下可以互换使用。
以这种方式思考:按名称绑定引用仍然是名称,查找将不得不搜索某种名称空间来解析访问。通过链接将名称转换为地址,通常只是一次,然后不再需要名称。多次访问的链接速度很快。
某些绑定系统可能会实现地址缓存以加快查找速度。一个很好的例子是桌面的ARP缓存,它缓存使用DNS服务器按名称查找的IP地址(巧合的是,最常用的DNS服务器称为“绑定”。)
脚本语言通常通过名称而不是链接来绑定事物,因为在解释语言本身时,执行基于名称的查找的开销并不是很大的惩罚。
答案 1 :(得分:2)
绑定意味着加载和获取共享库的地址。通常,程序将在编译时引用共享库,这称为静态绑定。
动态绑定是指程序在运行时确定共享库的名称并加载它