我正在进行一个图书馆项目,我一直为发布版本打开了“Strip Debug Symbols
”
我最近注意到了“Generate Debug Symbols
”标志。当我将“Generate Debug Symbols
”标志设置为NO时,我的库大小缩小了30%
这是发布版本的合理优化吗?
“剥离调试符号”和“生成调试符号”选项有什么区别,理想情况下,如果我剥离调试符号,则不会生成所有生成的调试符号远?为什么我会看到这种差异?
除了-Os(最快,最小)之外,还有什么其他优化可以减少二进制大小?
“Strip Linked Product
”如何运作?
答案 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函数都不会被剥离。