共享库,库依赖

时间:2011-07-08 16:03:10

标签: c++ linux linker compilation shared-libraries

是否有可能提供一个共享库 - 在创建期间链接另一个共享库 - 对最终用户是否透明?

作为我的意思的一个例子:

共享库构建

g++ ... `pkg-config gtk+-2.0 --cflags` ... `pkg-config gtk+-2.0 --libs`

所需的用户构建

g++ file.cc -lfoo

libfoo.so.0是共享库的位置。

如果用户构建包含pkg-config gtk+-2.0 ...,我似乎只能使其工作。在创建共享对象期间,有没有办法让最终用户不必担心libfoo中使用的间接库?

1 个答案:

答案 0 :(得分:3)

如果您有一个链接到libABC.so的共享库libXYZ.so,那么, 在创建libABC.so时,您必须与libXYZ.so

相关联
 ld --shared -o libABC.so -L. -lXYZ

编译应用程序时,

gcc app.c -L. -lABC

不要忘记,导出库路径

export LD_LIBRARY_PATH=.