Xcode 常用編譯選項設定
阿新 • • 發佈:2018-12-15
乍一看,這些設定可能太麻煩,其實它真的可以節省許多除錯應用的時間,在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 來源:簡書 簡書著作權歸作者所有,任何形式的轉載都請聯絡作者獲得授權並註明出處。