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



我有一个库项目,我总是为发布版本打开"Strip Debug Symbols"

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

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

"剥离调试符号"one_answers"生成调试符号选项之间的区别是什么?理想情况下,如果剥离调试符号,生成的调试符号不会全部消失?为什么我看到这种差异?

除了-Os(Fastest,Smallest)之外,我还能做什么其他优化来减少二进制大小?

"Strip Linked Product"是如何工作的?

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

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函数都不会被剥离。

最新更新