ELF共享库

时间:2014-06-13 18:07:33

标签: shared-libraries elf

我有一个关于在Linux上使用库的问题。假设我有一个名为MYPROG的程序和两个库LIBABC.SO和LIBXYZ.SO。 MYPROG使用“dlopen RTLD_NOW”加载模块LIBABC.SO。 “dlopen”失败,因为我使用的是LIBXYZ.SO的功能,而MYPROG没有与LIBXYZ.SO链接。我可以将共享库链接到另一个共享库吗?

1 个答案:

答案 0 :(得分:3)

不确定。如果在现有库上运行ldd(例如在/ usr / lib /中),您将看到其中许多库链接到其他库,除非另有说明,否则共享库至少会链接到C运行时库。

当您创建libABC.so时,将其链接到libXYX.so,作为使用gcc的示例:

gcc -shared -o libABC.so  -lXYZ obj1.o obj2.o