【问题标题】:Get a reference to local symbol (i.e. make it external)获取对本地符号的引用(即使其成为外部符号)
【发布时间】:2012-08-14 16:41:05
【问题描述】:

我有一个静态库,其中一个对象定义了一个符号:

nm mylib.a
...
00007340 t _a_local_symbol
...

我需要从我的 C 代码中访问该函数。显然,我没有库的源代码,所以我只能使用手头的存档文件。

这受到 iOS 链接器的进一步限制。

更多的上下文。库是Objective-C++,有问题的函数是纯C。我没有原始头文件,但我已经恢复了函数签名。

【问题讨论】:

  • 您能否为这个问题提供更多细节和背景信息?库是纯 C 还是 Objective-C?您是要调用未在头文件中公开的函数,还是要调用其他函数?

标签: ios linker extern symbols mach-o


【解决方案1】:

objcopy 有一个标志可以做你想做的事:

--globalize-symbol <name> Force symbol <name> to be marked as a global

不确定 objcopy 是否适用于 iOS 对象文件。

【讨论】:

  • Objcopy 是 GNU binutils 的一部分,它似乎只适用于 ELF。这里有更多关于这个主题的信息:stackoverflow.com/questions/3475854/…
  • 其实,此时我认为我可以在目标文件方面做到这一点,因为链接器似乎没有直接的解决方案。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2016-12-17
  • 2022-01-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多