2009-09-25 33 views
2

我剛開始使用xcode並學習Objective-C & Cocoa,將Xcode 3.2中的編譯器交換爲Clang以增強錯誤檢查和靜態分析器會有幫助。我只是好奇,如果給定的額外會有幫助,或者我的學習會更好地堅持默認設置?使用Clang開始時明智嗎?

千恩萬謝

加里

+0

這是什麼「叮叮」?你可以提供一個鏈接,我很好奇... – 2009-09-25 18:33:45

+0

他的意思是「叮噹」:http://clang.llvm.org/ – 2009-09-25 18:36:43

+0

我被混淆了棘輪與叮叮:)我的意思是鐺,上面的問題編輯糾正措辭。 – fuzzygoat 2009-09-26 16:22:14

回答

3

有使用CLANG幾個選項:

  1. 運行構建和分析,看看鐺 結果。

  2. 在一個 配置項目設置,您可以檢查 「運行靜態分析儀」框和CLANG 將每次編譯時間運行。

  3. 您還可以將編譯器 從GCC 4.x更改爲CLANG/LLVM。 顯示更多的錯誤和CLANG 警告(一個例子是, NSLog(@"A value is %@:%@", value) 會警告你,你沒有通過 足夠的參數)。

我建議選擇2 - 如果你運行靜態分析與每個版本,它並不需要更多的時間,你會發現,如果你正在做一些奇怪的向右走,而不是固定之後的一堆錯誤。它給你的明確信息實際上提供了很大的教育價值,所以如果你只是在學習,它就更有意義了!

由於更大的錯誤檢查,選項3很適合不時運行。但是,目前XCode沒有用於iPhone設備的CLANG/LLVM編譯器,因此您只能在編譯模擬器時使用該設置。最好的方法是創建一個名爲「Debug CLANG」的調試配置副本(在項目設置配置選項卡中),並將該配置設置爲使用CLANG/LLVM編譯器並運行靜態分析器。請注意,創建新配置後,您必須退出設置,將其選爲活動配置(通過右上方的下拉菜單),然後返回到項目設置以編輯值。

然後在日常使用中,您只需使用「調試」設置使用靜態分析器進行編譯,並可能每週切換到「調試CLANG」一次,以查看是否存在更深層次的問題。

3

如果「建立與分析」或打開XCode中的「運行靜態分析儀」的偏好,你鏘的靜態分析。

如果你沒有從事C++開發,從gcc切換到Clang似乎沒有多大的不利之處。您只需要這樣做就可以獲得Clang靜態分析的好處。

+0

你確定你使用GCC 4.2下的「構建和分析」得到更好的錯誤消息,我在這裏沒有看到。對於iPhone,您需要使用GCC? – fuzzygoat 2009-09-25 19:37:58

+0

你是對的,你仍然得到gcc的鈍角錯誤信息。我相應地改變了我的答案。當我發誓的時候,我看到一個官方文檔說沒有用於iPhone的Clang-LLVM,我找不到它,所以試試看。我爲我的Mac代碼切換到CClang-LLVM。 – 2009-09-25 21:21:35

3

您可以使用靜態分析器,而無需使用實際的Clang編譯器。一般來說,你不會使用分析器作爲你的默認構建選項,因爲它會減緩構建時間。

但是,即使不考慮靜態分析,Clang編譯器也是一個很好的選擇。正如您指出的那樣,它有更好的錯誤報告,但主要優點是速度非常快,事實上在我測試中它幾乎是GCC的兩倍。

+0

僅供參考,代碼或項目與您設置的編譯器無關。如果你發現有些東西不能解決問題,我會認爲它只是一個默認返回並重新編譯的情況? – fuzzygoat 2009-09-25 21:49:51

+0

@fuzzygoat:這是正確的。你只需選擇一個不同的編譯器並重建項目。所以你選擇哪一個作爲默認值並不重要。 – Amok 2009-10-02 23:01:43