gpt4 book ai didi

c - 苹果操作系统 X : Extending a shared library by adding a function

转载 作者:太空宇宙 更新时间:2023-11-03 23:34:52 24 4
gpt4 key购买 nike

我想通过添加一个函数来扩展 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.

关于c - 苹果操作系统 X : Extending a shared library by adding a function,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6538602/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com