我理解C中链接器的相关性和工作,但二进制文件中发生了什么?链接器是否复制了二进制文件,例如DLL,还是简单地以二进制形式引用此库函数来执行该函数?
答案 0 :(得分:4)
在DLL的情况下,链接器只是在可执行代码中放置DLL中的函数的引用,这将(希望)在运行时解析。在静态链接的情况下,链接器将库中的代码复制到可执行文件中,并且所有内容都在链接时解析。
如果你真的想要关于连接器的完整故事,很少有人真正感兴趣,请看一下https://www.amazon.co.uk/Linkers-Kaufmann-Software-Engineering-Programming/dp/1558604960这是一本很好的书。