延迟共享库的链接

Deferring linking of shared libs

本文关键字:链接 共享 延迟      更新时间:2023-10-16

如果我在 Linux 中使用共享库,如果应用程序必须在运行时找到库,为什么我需要将其与 -l 链接?

我不能在链接步骤中传递一个带有正确函数签名的虚拟 .so 并在运行时将其替换为真正的 .so 并且仍然让它正常工作吗?

有没有办法只用头文件编译应用程序并在运行时进行链接?

如果我在 linux 中使用共享库,如果应用程序必须在运行时找到该库,为什么我需要将其与 -l 链接?

这样加载程序就知道在运行时必须加载哪些库。

我不能在链接步骤中传递一个带有正确函数签名的虚拟 .so 并在运行时将其替换为真正的 .so 并且仍然让它正常工作吗?

绝对。

有没有办法只用头文件编译应用程序并在运行时进行链接?

是的,但是有责任调用dlopen(3)dlsym(3)自己加载库和函数。