作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
问题是,我发现 Mac OS X 有一个 dyld(我理解的是动态链接器),但也有一个简单的链接器 ld(我理解的是静态链接器)。
问题是:真的是这样吗?两个链接器?一静态一动态?
为什么他们决定有两个? Linux 只有一个链接器 (ld) 可以同时进行静态和动态链接。
最佳答案
您误解了“链接”的含义。或者,换个角度想,你还没有意识到它有两个含义。
如果有帮助,请考虑 dyld
如动态装载机而不是“链接器”。 dyld
是将可执行文件引用的动态库加载到进程地址空间的程序。它仍然涉及链接,因为它需要解析符号引用。
你从不调用 dyld
作为构建过程的一部分。您总是使用 ld
或者,更典型的是,您要求编译器链接您的程序,然后它会调用 ld
代表你。 dyld
仅在运行时使用。
当您断言 Linux 没有这种区别时,您是不正确的。 Linux 有一个动态加载器, ld.so
,它不同于静态链接器,ld
.
关于macos - OS X 有两个链接器吗?一静态一动态?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29335332/
我是一名优秀的程序员,十分优秀!