3

在 iOS 6 的静态库项目中,.c 文件中的某些函数被其他人引用,因此被视为全局符号,但不应向该库的用户公开。

我怎样才能把strip这些函数名拿出来?另外,我怎样才能隐藏那些 obj 文件名,以便没有人可以在nm输出中看到 .o 名称?

我试图启用/设置:

  • 部署后处理
  • 在复制期间去除调试符号
  • 条形链接产品
  • Strip Stype:“非全局符号”或“调试符号”
  • 使用单独的条带

编辑:

我看到还有另一个构建设置项“附加条标志”。通过在其中添加一个标志-R /path/to/symbol_list_filestrip命令将删除文件中指示的符号,或者-s /path/to/exported_symbol_list_file -u指示接口并同时留下未定义的符号。

4

1 回答 1

3

不,你不能。静态库只是目标文件的集合,静态库中的目标文件对使用静态库的文件没有特殊权限。

你显然可以strip得到最终的二进制文件。

如果您必须隐藏符号,那么它们需要是static,这会迫使您使用更少的实现文件来允许共享符号,这很不方便。

于 2013-09-14T16:29:17.153 回答