推迟共享库的链接

时间:2012-05-23 16:53:24

标签: c++ linux linker shared-libraries

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

我不能在链接步骤中使用正确的函数签名传入一个虚拟的.so,并在运行时将其替换为真正的.so并仍然可以正常工作吗?

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

1 个答案:

答案 0 :(得分:2)

  

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

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

  

我不能在链接步骤中使用正确的函数签名传入一个虚拟的.so,并在运行时将其替换为真正的.so并仍然可以正常工作吗?

绝对

  

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

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