【问题标题】:Is it possible to compile a newer version of LLVM and use it with Xcode?是否可以编译更新版本的 LLVM 并将其与 Xcode 一起使用?
【发布时间】:2013-04-28 09:46:35
【问题描述】:

我有一台无法升级到 Lion 的旧计算机,但我想使用它进行编码,同时仍然利用 instancetype 和 Objective-C 文字等语法。有没有人尝试编译较新的 Clang 和 LLVM 以与较旧的 Xcode 一起使用并成功了?

【问题讨论】:

  • 可能但未得到官方支持。 google "clang trunk xcode plugin" 开始。
  • @justin 我预计会在这方面走上老路。感谢您为我指明方向。
  • 不客气。幸运的是,其他人已经对其进行了描述并提供了插件供您使用。

标签: objective-c xcode llvm clang


【解决方案1】:

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

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

正如链接的博客文章中所指出的,您可能会从 Xcode 的实时语法检查中得到错误/警告,因为 Xcode 使用的是旧版本的 libclang(在 (3) 下有更多内容)。它可能编译得很好,但编辑源代码不会很有趣。

(2) 通过CC标志设置编译器。这可能是最简单/最快的解决方案,并且该设置仅影响一个项目。进入项目的 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 中都不会遇到此问题。

【讨论】:

  • 感谢方法 2。这真的很容易做到。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2017-12-06
  • 2011-05-15
  • 2011-01-29
  • 2011-05-26
  • 1970-01-01
  • 1970-01-01
  • 2017-03-05
相关资源
最近更新 更多