Mac OS X:通过添加函数扩展共享库

Mac OS X:通过添加函数扩展共享库,c,macos,shared,extend,C,Macos,Shared,Extend,我想通过添加一个函数来扩展MacOSX上的共享c库(dylib)。让我们调用函数const char*get\u string(void)。我的做法如下: 我创建了一个新的共享库,其中包含get\u string(void)函数,并喜欢它与我想要扩展的库相比。可以说是图书馆的包装纸。到现在为止,一直都还不错。下一步是根据我的新扩展库链接应用程序,但问题是扩展库只导出符号\u get\u string,而不导出原始库的符号。这就是为什么针对“扩展”库(而不是原始库)的链接会产生大量未解析的符号警告

我想通过添加一个函数来扩展MacOSX上的共享c库(dylib)。让我们调用函数
const char*get\u string(void)
。我的做法如下:

我创建了一个新的共享库,其中包含
get\u string(void)
函数,并喜欢它与我想要扩展的库相比。可以说是图书馆的包装纸。到现在为止,一直都还不错。下一步是根据我的新扩展库链接应用程序,但问题是扩展库只导出符号
\u get\u string
,而不导出原始库的符号。这就是为什么针对“扩展”库(而不是原始库)的链接会产生大量未解析的符号警告/错误

是否有任何方法可以导出原始库的所有符号(有很多),或者是否有更好的方法来解决此问题。基本上我只想扩展现有的库。顺便说一句,我可以访问原始库的源代码,但我不能只是重新编译它


提前谢谢

ld的这个选项怎么样:

     -reexport-lx
             This is the same as the -lx but specifies that the all symbols in library x should
             be available to clients linking to the library being created.  This was previously
             done with a separate -sub_library option.

坦克,听起来不错,但对我不起作用。我使用Xcode并将属性“Other Linker Flags”设置为“-L/usr/local/lib-reexport lparent”,其中应该扩展libparent.dylib。libtool似乎没有传递重新导出标志。父库甚至没有链接到。你有什么建议吗?sub_库标志已被识别,但nm仍然没有列出父库的符号对不起,我像瘟疫一样避免使用xcode。这是我的命令行。