我一直对链接器的工作原理感到困惑,这是一个难以搜索的主题。
为了证明我的问题并提供答案的框架,我将在目前为止记下我所知道的(或者我认为我知道的)。我可能是非常错的。 :)
首先,每个.cpp文件都内置在一个中间文件中(.o用于Posix / ELF,而.obj用于Win / PE我相信)。此中间文件包含由其构建的.cpp定义的所有符号,并具有正确解析所需外部链接的说明。作为对此的扩展,Posix系统允许您将.o文件合并到一个.a文件中(除了组合之外似乎什么都不做?这是什么命令?)。 .lib是Posix .a文件的Win / PE等价物吗?
接下来,将中间文件链接在一起,解析外部依赖项,并获得可执行文件。我错过了任何步骤吗?
谢谢!
答案 0 :(得分:1)
以下是一些难题: