我想通过添加一个函数来扩展Mac OS X上的共享c库(dylib)让我们调用函数const char *get_string(void)
我的方法是:
我创建了一个新的包含get_string(void)
函数的共享库,并喜欢它与我想要扩展的库相比可以说是图书馆的包装纸到现在为止,一直都还不错。下一步是将应用程序链接到我的新扩展库,但问题是扩展库只导出符号_get_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.