gpt4 book ai didi

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

转载 作者:太空狗 更新时间:2023-10-30 03:38:34 24 4
gpt4 key购买 nike

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

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

这是对发布构建的合理优化吗?

Strip Debug Symbols”和“Generate Debug Symbols”选项有什么区别,理想情况下,如果我剥离调试符号,所有生成的调试符号都不会消失离开?为什么我会看到这种差异?

除了 -Os(最快,最小)我还可以进行哪些其他优化来减小二进制文件的大小?

剥离链接产品”是如何工作的?

最佳答案

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

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

使用这些build设置,Xcode 似乎与在二进制文件上手动运行“剥离”一样,至少从文件大小来看是这样。

我还没有找到任何其他方法来进一步减小二进制文件的大小。请注意那里的“DEPLOYMENT_POSTPROCESSING”标志 - 如果没有它,二进制文件的大小会大很多,例如所有 C 函数都不会被删除。

关于objective-c - Xcode LLVM+GCC 4.2 - 生成调试符号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11461264/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com