Xcode 当iOS应用程序链接到静态库时,如何获取丢弃符号列表?
我正在构建一个供第三方使用的iOS静态库。它是使用几个其他的静态库构建的,包含大量的C++,从而产生了一个巨大的可交付的库。p> iOS库的API非常简单,我知道它并没有执行所有包含的代码。我想从各种库中删除不需要的模块,这样我就可以降低最终的大小Xcode 当iOS应用程序链接到静态库时,如何获取丢弃符号列表?,xcode,gcc,ios,Xcode,Gcc,Ios,我正在构建一个供第三方使用的iOS静态库。它是使用几个其他的静态库构建的,包含大量的C++,从而产生了一个巨大的可交付的库。p> iOS库的API非常简单,我知道它并没有执行所有包含的代码。我想从各种库中删除不需要的模块,这样我就可以降低最终的大小 我有一个示例应用程序,它使用所有库API,当它链接时,库中的大多数符号都被丢弃。有没有办法得到这些符号的列表 这个答案似乎表明您想要在GCC 3.x和4.x中执行的操作是不可能的: 我被告知,使用动态库的限制是由代码签名过程强制执行的,因此我认为这可
我有一个示例应用程序,它使用所有库API,当它链接时,库中的大多数符号都被丢弃。有没有办法得到这些符号的列表 这个答案似乎表明您想要在GCC 3.x和4.x中执行的操作是不可能的:
我被告知,使用动态库的限制是由代码签名过程强制执行的,因此我认为这可能有效:
nm-uj
列出可执行文件中未定义的符号。由于库已静态链接,因此唯一未定义的符号应为标准iOS库定义的符号nm-uj
。未定义的符号是步骤2中列出的符号与可执行文件实际引用的库符号的并集diff
步骤2和步骤5中的列表。这将仅提供库中的符号列表nm-js\uuuuu TEXT\uuuu TEXT
,以获得每个对象文件导出的函数列表