是否有可能提供一个共享库 - 在创建期间链接另一个共享库 - 对最终用户是否透明?
作为我的意思的一个例子:
共享库构建
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
中使用的间接库?
答案 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=.