2012-07-12 29 views
7

,我一直有「Strip Debug Symbols」開啓發布版本的XCode LLVM + GCC 4.2 - 生成我有一個庫項目調試符號

最近,我注意到了「Generate Debug Symbols」標誌。當我設置「Generate Debug Symbols」標誌NO,然後我的庫容量30%

這是一個合理的優化以使得發佈版本縮水?

是什麼「地帶調試符號」之間的區別「生成調試符號」選項,如果理想的剝離我調試符號不會生成的所有調試符號消失?爲什麼我看到這種差異?

還什麼其他的優化以外的其他OS(最快,最小),我可以減少二進制文件的大小?

Strip Linked Product」是如何工作的?

+0

我從這個鏈接得到了很好的理解,但我仍然愛一些人解釋這一點.. http://developer.apple.com/library/mac/#documentation/DeveloperTools/Reference/XcodeBuildSettingRef/1-Build_Setting_Reference /build_setting_ref.html – Santthosh 2012-07-12 23:25:11

回答

2

關於二進制文件大小的減少,這是我的版本配置文件的樣子關於二進制的剝離和我想這是大多數開發者是如何做到這一點:

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函數不會被剝離。

+0

沒有完全回答這個問題。 「Strip Debug Symbols」和「Generate Debug Symbols」之間的區別是什麼?從他們的名字來看,他們聽起來像是互相矛盾。典型的Xcode胡說。 – Ash 2016-03-07 03:44:20

相關問題