我剛開始使用xcode並學習Objective-C & Cocoa,將Xcode 3.2中的編譯器交換爲Clang以增強錯誤檢查和靜態分析器會有幫助。我只是好奇,如果給定的額外會有幫助,或者我的學習會更好地堅持默認設置?使用Clang開始時明智嗎?
千恩萬謝
加里
我剛開始使用xcode並學習Objective-C & Cocoa,將Xcode 3.2中的編譯器交換爲Clang以增強錯誤檢查和靜態分析器會有幫助。我只是好奇,如果給定的額外會有幫助,或者我的學習會更好地堅持默認設置?使用Clang開始時明智嗎?
千恩萬謝
加里
有使用CLANG幾個選項:
運行構建和分析,看看鐺 結果。
在一個 配置項目設置,您可以檢查 「運行靜態分析儀」框和CLANG 將每次編譯時間運行。
您還可以將編譯器 從GCC 4.x更改爲CLANG/LLVM。 顯示更多的錯誤和CLANG 警告(一個例子是, NSLog(@"A value is %@:%@", value)
會警告你,你沒有通過 足夠的參數)。
我建議選擇2 - 如果你運行靜態分析與每個版本,它並不需要更多的時間,你會發現,如果你正在做一些奇怪的向右走,而不是固定之後的一堆錯誤。它給你的明確信息實際上提供了很大的教育價值,所以如果你只是在學習,它就更有意義了!
由於更大的錯誤檢查,選項3很適合不時運行。但是,目前XCode沒有用於iPhone設備的CLANG/LLVM編譯器,因此您只能在編譯模擬器時使用該設置。最好的方法是創建一個名爲「Debug CLANG」的調試配置副本(在項目設置配置選項卡中),並將該配置設置爲使用CLANG/LLVM編譯器並運行靜態分析器。請注意,創建新配置後,您必須退出設置,將其選爲活動配置(通過右上方的下拉菜單),然後返回到項目設置以編輯值。
然後在日常使用中,您只需使用「調試」設置使用靜態分析器進行編譯,並可能每週切換到「調試CLANG」一次,以查看是否存在更深層次的問題。
如果「建立與分析」或打開XCode中的「運行靜態分析儀」的偏好,你鏘的靜態分析。
如果你沒有從事C++開發,從gcc切換到Clang似乎沒有多大的不利之處。您只需要這樣做就可以獲得Clang靜態分析的好處。
你確定你使用GCC 4.2下的「構建和分析」得到更好的錯誤消息,我在這裏沒有看到。對於iPhone,您需要使用GCC? – fuzzygoat 2009-09-25 19:37:58
你是對的,你仍然得到gcc的鈍角錯誤信息。我相應地改變了我的答案。當我發誓的時候,我看到一個官方文檔說沒有用於iPhone的Clang-LLVM,我找不到它,所以試試看。我爲我的Mac代碼切換到CClang-LLVM。 – 2009-09-25 21:21:35
您可以使用靜態分析器,而無需使用實際的Clang編譯器。一般來說,你不會使用分析器作爲你的默認構建選項,因爲它會減緩構建時間。
但是,即使不考慮靜態分析,Clang編譯器也是一個很好的選擇。正如您指出的那樣,它有更好的錯誤報告,但主要優點是速度非常快,事實上在我測試中它幾乎是GCC的兩倍。
這是什麼「叮叮」?你可以提供一個鏈接,我很好奇... – 2009-09-25 18:33:45
他的意思是「叮噹」:http://clang.llvm.org/ – 2009-09-25 18:36:43
我被混淆了棘輪與叮叮:)我的意思是鐺,上面的問題編輯糾正措辭。 – fuzzygoat 2009-09-26 16:22:14