将应用程序链接到动态共享库时,例如
gcc -o myprog myprog.o -lmylib
我知道链接器(ld
在我的 Linux 上)使用 -l 选项在生成的 myprog ELF 可执行文件中存储mylib
将在加载和链接时使用的库的名称(在这种情况下)(在程序启动时)如果我们忽略惰性动态链接)。我想知道ld
关于动态共享库的其他工作是什么(我只是说在编译时完成的静态链接步骤)?
ld
必须检查提供的动态共享库中是否存在未定义的符号- 任何其他的东西?
此外,我将对您正在使用的关于 ELF 格式和动态链接和加载过程的指针(书籍、在线文档)感兴趣。