Xcode LLVM + GCC 4.2 - 生成调试符号

时间:2012-07-12 21:51:45

标签: objective-c xcode xcode4.3 llvm-gcc

我正在进行一个图书馆项目,我一直为发布版本打开了“Strip Debug Symbols

我最近注意到了“Generate Debug Symbols”标志。当我将“Generate Debug Symbols”标志设置为NO时,我的库大小缩小了30%

这是发布版本的合理优化吗?

剥离调试符号”和“生成调试符号”选项有什么区别,理想情况下,如果我剥离调试符号,则不会生成所有生成的调试符号远?为什么我会看到这种差异?

除了-Os(最快,最小)之外,还有什么其他优化可以减少二进制大小?

Strip Linked Product”如何运作?

1 个答案:

答案 0 :(得分:1)

关于二进制文件大小的减少,这就是我的发布配置文件关于二进制文件剥离的看法,我想大多数开发人员都是这样做的:

DEPLOYMENT_POSTPROCESSING = YES
COPY_PHASE_STRIP = NO (not necessary since my copied binaries are already stripped and codesigned)
STRIP_INSTALLED_PRODUCT = YES
STRIP_STYLE = all
SEPARATE_STRIP = YES
DEAD_CODE_STRIPPING = YES
GCC_GENERATE_DEBUGGING_SYMBOLS = NO

使用这些构建设置,Xcode似乎与运行" strip"相同。手动对二进制文件,至少从文件大小说的。

我还没有找到任何其他方法来减少二进制大小。注意" DEPLOYMENT_POSTPROCESSING"在那里标记 - 如果没有它,二进制大小会更大,例如,所有C函数都不会被剥离。