gcc 如果没有找到.so文件但没有调用函数,程序是否会运行

s2j5cfk0  于 2022-11-13  发布在  其他
关注(0)|答案(1)|浏览(139)

问题是,例如我有一个依赖于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。

mm9b1k5b

mm9b1k5b1#

不可以,这个功能叫做延迟加载,Linux共享库不支持。您可以通过dlopen/dlsym手动加载库来解决这个问题,而不是直接链接到它。

相关问题