链接器和加载器参考
我想阅读一些有关可执行文件的编译链接加载过程的文本。 一般来说,我发现网络文本并不像我想要的那么详细。
不……我确信一本关于编译器和链接器等的书太多了。我想要了解一般知识,尤其是实践中的情况。
任何参考将不胜感激...我确信有一些博客有关于此的优秀文章。
I'd like to read some text about the compile-link-load process of a executable.
In general web-texts I found are not so detailed oriented as I'd like.
And no... I'm sure a book about compilers&linkers,etc it would be too much. I want a general knowledge especially how things are in practice.
Any reference would be appreciated... I'm sure there are some blogs that have excelent articles about this.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
只有少数编程语言实现使用链接器和加载器。
我不知道如果不暂时打开链接器和编译器,您如何能够在这里深入了解细节。
在 C 语言实现中,编译器输出目标文件。链接器是一个单独的程序,它获取目标文件并输出可执行文件。此外,加载程序是加载可执行文件的单独程序。
有些编译器会直接快捷地调用链接器。
很少有编译器实现只是输出汇编文件,这些文件被进一步汇编然后链接。
没有更多的内容了。
Only few programming language implementations are using linkers and loaders.
I don't know how could you go into deeper specifics here without sliting the linker and compiler open for a moment.
In C language implementations compiler outputs object files. Linker is a separate program that takes object files and outputs an executable file. Further the loader is a separate program that loads the executable.
Some compilers shortcut and invoke the linker directly.
Few compiler implementations are just outputting assembly files, which are further assembled and then linked.
There's not much more into it.
Ulrich Drepper 关于 Linux 上的库和可执行文件的论文非常出色。
Ulrich Drepper's paper on libraries and executables on Linux is excellent.