问题是,例如我有一个依赖于www.example.com的.binary1.so2.so依赖于3.so。当执行“ldd 1.so”时,它只显示它依赖于“2.so”,因此如果缺少“3.so "但没有从”3.so“调用函数,我的.binary是否会执行?基本上,”3.so“是随我的.binary一起提供的。但在某些运行时检查期间,在某些情况下不使用它。如果www.example.com不存在,我会看到找不到共享库错误2.so。
mm9b1k5b1#
不可以,这个功能叫做延迟加载,Linux共享库不支持。您可以通过dlopen/dlsym手动加载库来解决这个问题,而不是直接链接到它。
dlopen
dlsym
1条答案
按热度按时间mm9b1k5b1#
不可以,这个功能叫做延迟加载,Linux共享库不支持。您可以通过
dlopen
/dlsym
手动加载库来解决这个问题,而不是直接链接到它。