1. 程式人生 > >Xcode 常用編譯選項設定

Xcode 常用編譯選項設定

乍一看,這些設定可能太麻煩,其實它真的可以節省許多除錯應用的時間,在xcconfig檔案中指定即可。

用標準庫連線

LINK_WITH_STANDARD_LIBRARIES = YES

如果啟用此設定,那麼編譯器在連結過程中會自動使用通過標準庫的連結器。

Info.plist 輸出編碼

INFOPLIST_OUTPUT_FORMAT = binary

指定Info.plist檔案的輸出編碼(預設情況下,輸出與輸入的編碼保持不變),這個輸出編碼能指定“binary”或者“XML”。

生成除錯符號

GCC_GENERATE_DEBUGGING_SYMBOLS = NO

當啟用的時候,詳情等級能夠通過build

'Level of Debug Symbols'設定去控制。

隱藏內聯方法

GCC_INLINES_ARE_PRIVATE_EXTERN = YES

Objective-C GC

GCC_ENABLE_OBJC_GC = Unsupported

優化級別

GCC_OPTIMIZATION_LEVEL = Fastest, Smallest   [-OS]
  • None: 不做優化使用這個設定,編譯器的目標是減少編譯成本,使除錯產生預期的結果。
  • Fast:優化編譯將為大函式佔用更多的時間和記憶體使用這個設定,編譯器將嘗試減少程式碼的大小和執行時間,不進行任何優化,需要大量編譯時間。
  • Faster:編譯器執行幾乎所有支援的優化,它不考慮空間和速度之間的平衡與“Fast”設定相比,該設定會增加編譯時間和生成程式碼的效能。編譯器不進行迴圈展開、行內函數和暫存器變數的重新命名。
  • Fastest:開啟“Faster”支援的所有的優化,同時也開啟行內函數和暫存器變數的重新命名選項
  • Fastest,smallest:優化程式碼大小這個設定啟用“Faster”所有的優化,一般不增加程式碼大小,它還執行旨在減小程式碼大小的進一步優化。

C語言方言

GCC_C_LANGUAGE_STANDARD = C89

警告

檢查Switch語句

GCC_WARN_CHECK_SWITCH_STATEMENTS = YES

隱藏區域性變數

GCC_WARN_SHADOW = YES

隱式轉換成32位的型別

GCC_WARN_64_TO_32_BIT_CONVERSION = YES

未完成的Objective-C協議

GCC_WARN_ALLOW_INCOMPLETE_PROTOCOL = YES

抑制所有的警告

GCC_WARN_INHIBIT_ALL_WARNINGS = NO

初始化時沒有完整的括號

GCC_WARN_INITIALIZER_NOT_FULLY_BRACKETED = YES

不匹配的返回型別

GCC_WARN_ABOUT_RETURN_TYPE = YES

缺少括號

GCC_WARN_MISSING_PARENTHESES = YES

在結構體初始化時缺少欄位

GCC_WARN_ABOUT_MISSING_FIELD_INITIALIZERS = YES

缺少函式原型

GCC_WARN_ABOUT_MISSING_PROTOTYPES = YES

在檔案結尾缺少新行

GCC_WARN_ABOUT_MISSING_NEWLINE = YES

選擇了多個定義的型別(@Selector)

GCC_WARN_MULTIPLE_DEFINITION_TYPES_FOR_SELECTOR = NO

嚴格的Selector匹配

GCC_WARN_STRICT_SELECTOR_MATCH = YES

把缺少函式原型當作錯誤

GCC_TREAT_IMPLICIT_FUNCTION_DECLARATIONS_AS_ERRORS = YES

把所有的警告當作錯誤

GCC_TREAT_WARNINGS_AS_ERRORS = YES

未定義的Selector

GCC_WARN_UNDECLARED_SELECTOR = YES

未初始化的自動變數

GCC_WARN_UNINITIALIZED_AUTOS = YES

未知的Pragma指令

GCC_WARN_UNKNOWN_PRAGMAS = YES

未使用的函式

GCC_WARN_UNUSED_FUNCTION = YES

未使用的標籤

GCC_WARN_UNUSED_LABEL = YES

未使用的引數

GCC_WARN_UNUSED_PARAMETER = YES

未使用的值

GCC_WARN_UNUSED_VALUE = YES
當一個語句計算的結果顯式的未使用的時候發出警告

未使用的變數
GCC_WARN_UNUSED_VARIABLE = YES

警告-所有過時的函式
GCC_WARN_ABOUT_DEPRECATED_FUNCTIONS = YES

offsetof巨集未定義使用的警告
GCC_WARN_ABOUT_INVALID_OFFSETOF_MACRO = YES

作者:張霸天 連結:https://www.jianshu.com/p/fb261ed13a27 來源:簡書 簡書著作權歸作者所有,任何形式的轉載都請聯絡作者獲得授權並註明出處。