2013-04-28 8 views
5

私はLionにアップグレードできない古いコンピュータを持っていますが、instancetypeやObjective-Cリテラルなどの構文を利用しながらコーディングに使用したいと考えています。古いXcodeで使用する新しいClangとLLVMをコンパイルしようとした人は誰ですか?新しいバージョンのLLVMをコンパイルしてXcodeで使用できますか?

+1

が可能ですが、正式にはサポートされていません。 google "clang trunk xcode plugin"を開始してください。 – justin

+1

@justin私はこの暴行の道を離れることが予想されます。その方向で私を指摘していただきありがとうございます。 –

+0

ようこそ。幸いにも、他の人がそれを記述し、あなたのためのプラグインを提供しました。 – justin

答えて

8

最新のLLVM/Clangバージョンを使用するにはさまざまな方法があります。 プラグイン、上記のコメントで説明したように、例えば

(1): http://blog.wadetregaskis.com/tot-clang-llvm-in-xcode/

としては、リンクされたブログ記事で指摘、あなたはXcodeのようチェックのXcodeのリアルタイム構文からエラー/警告を得ることができます古いバージョンのlibclangを使用しています(詳細は(3)を参照)。それはうまくコンパイルされる可能性が高いですが、ソースコードを編集することは楽しいことではありません。

(2)CCフラグでコンパイラを設定してください。これはおそらく最も簡単で最速の解決策であり、設定は1つのプロジェクトにしか影響しません。プロジェクトのビルド設定に行き、 "ビルド設定の追加" - > "ユーザー定義設定の追加"(Xcode 5ではエディタメニューに表示されません)を選択し、名前をCCとし、 Clangのバージョン。私にとってうまくいきましたが、(1)と同様に、特にリテラルなどの新しい構文を使用する場合や、古いバージョンが理解できない警告のフラグを渡す場合は、ライブエラー報告と競合する可能性があります。

(3)をコンパイラに置き換えます。ファイルを置き換える前に必ずバックアップを取ってください。置換が必要なファイルはClangバイナリとlibclang.dylibです。 /Applications/Xcode.app/ - >オプション - クリック - >「パッケージ内容を表示」 - >/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のいずれかの問題が発生することはありません。

+1

恐ろしい情報、ありがとう。 –

関連する問題