2013-04-28 33 views
5

我有一臺舊電腦,無法升級到Lion,但我想用它進行編碼,同時仍利用語法,如instancetype和Objective-C文字。有沒有人試圖編譯一個更新的Clang和LLVM與舊的Xcode一起使用並獲得成功?是否可以編譯LLVM的新版本並將其與Xcode一起使用?

+1

可能但不受官方支持。谷歌「叮噹幹線Xcode插件」開始。 – justin 2013-04-28 10:02:03

+1

@justin我期待着在這一條路上脫穎而出。謝謝你指出我的方向。 – 2013-04-28 10:44:22

+0

不客氣。幸運的是,其他人已經描述了它並提供了插件供您使用。 – justin 2013-04-28 10:53:33

回答

8

有多種方法可以使用最新的LLVM/Clang版本。

(1)插件,如上面的註釋,例如描述: http://blog.wadetregaskis.com/tot-clang-llvm-in-xcode/

作爲鏈接的博客文章指出,你可能會得到錯誤/從Xcode的實時語法警告檢查爲Xcode中使用舊版本的libclang(更多關於(3))。它很可能編譯得很好,但編輯源代碼不會很有趣。 (2)通過設置編譯器CC標誌。這可能是最簡單/最快的解決方案,並且該設置僅影響一個項目。進入項目的構建設置,選擇「添加生成設置」 - >「添加用戶定義的設置」(在Xcode 5中,這隱藏在編輯器菜單中),將其命名爲CC並將值設置爲您的路徑鏗鏘的版本。對我來說工作得很好,但和(1)一樣,您可能會與實時錯誤報告發生衝突,特別是如果您想使用文字等新語法,或者傳遞舊版本不明白的警告標誌時。

(3)替換編譯器。確保在替換之前備份任何文件。有兩個文件需要被替換:Clang二進制文件和libclang.dylib。進入/Applications/Xcode.app/ - >選項 - 點擊 - >「顯示包裝內容」 - >/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr。鐺在/bin,libclang.dylib在/lib

這兩個二進制文件都可以從源代碼編譯(當然會給你一個更新的版本),或者從最新的Xcode包複製。我用自定義版本的libclang遇到了麻煩,但我懷疑問題來自我在那裏的修改。如果有疑問,請使用來自更高版本Xcode的libclang。

注意:我修改後的libclang二進制文件使用ARC,因此與Xcode 4不兼容,後者與垃圾收集一起運行。 Xcode 5本身使用ARC,因此問題消失了。如果您未經修改地編譯libclang,則不應在Xcode 4或5中遇到問題。

+1

真棒資訊,謝謝。 – 2013-05-03 15:12:00

相關問題