我有一台无法升级到 Lion 的旧计算机,但我想将它用于编码,同时仍然利用诸如instancetype
Objective-C 文字等语法。有没有人尝试编译较新的 Clang 和 LLVM 以与较旧的 Xcode 一起使用并成功了?
1 回答
有多种方法可以使用最新的 LLVM/Clang 版本。
(1)插件,如上面评论中所述,例如: http ://blog.wadetregaskis.com/tot-clang-llvm-in-xcode/
正如链接的博客文章中所指出的,您可能会从 Xcode 的实时语法检查中得到错误/警告,因为 Xcode 使用的是旧版本的 libclang(更多关于 (3) 下的内容)。它可能编译得很好,但编辑源代码不会很有趣。
CC
(2) 通过标志设置编译器。这可能是最简单/最快的解决方案,并且该设置仅影响一个项目。转到项目的 Build Settings,选择“Add Build Setting”->“Add User-Defined Setting”(在 Xcode 5 中,这隐藏在Editor菜单中),为其命名CC
并将值设置为您的 Clang 版本的路径. 对我来说工作得很好,但与 (1) 一样,您可能会与实时错误报告发生冲突,特别是如果您想使用新语法(如文字)或传递旧版本不理解的警告标志。
(3)更换编译器。确保在替换之前备份所有文件。有两个文件需要替换:Clang 二进制文件和 libclang.dylib。转到/Applications/Xcode.app/
-> Option-Click -> “显示包内容” -> /Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr
。clang 位于/bin
,libclang.dylib 位于/lib
.
两个二进制文件都可以从源代码编译(当然,这会给你一个更新的版本)或者只是从最新的 Xcode 包中复制。我在使用定制版本的 libclang 时遇到了麻烦,但我怀疑问题源于我在那里的修改。如果有疑问,请使用更高版本的 Xcode 中的 libclang。
注意:我修改后的 libclang 二进制文件使用了 ARC,因此与运行垃圾收集的 Xcode 4 不兼容。Xcode 5 本身使用 ARC,所以问题已经消失。如果你编译 libclang 未经修改,你不应该在 Xcode 4 或 5 中遇到这个问题。