我想创建一个使用第三方静态库中的函数的共享库。例如,来自libfoobar.a
的foo
和bar
。我知道我的主要应用程序也使用foo
,并将导出该符号。所以我只想链接bar
以节省代码大小并保留'foo'未解决(因为它将由主应用程序提供)。如果我包含libfoobar.a
,链接器ld将在我的共享库中包含这两个函数。如果我不包含libfoobar.a
,我的程序库将无法访问函数bar
,因为应用程序本身没有在bar
中链接。问题:共享库中库函数的选择性静态链接
- 有没有办法告诉LD只能解决某些符号构建共享库时?
- 将
libfoobar.a
转成共享库? - 包含函数
bar
的提取文件从libfoobar.a
并指定在链接器行? - 不用担心,运行时加载程序将从您的应用程序中使用
bar
,因此共享库中的bar
副本将不会被加载?
对不起libc的困惑。我只是指任何第三方静态库,并以libc为例。我要修改我的问题来澄清这一点。 – KlaxSmashing 2009-12-07 19:30:09