「ClangOnWin」というものを見つけたので試してみました。
インストール
ClangOnWin のページからインストーラーがダウンロードできますので、そちらを取得したらインストーラーを起動します。(※ この記事では LLVM-3.4.svn-win32-2013.11.01-193854.exe を使用しました)
起動したら特に変更なくデフォルト設定のままインストールをします。
ツールセット
インストールが完了すると Visual Studio のプラットフォームツールセットに LLVM が追加されます。これを LLVM-vs2013(2010,2012) にすることで clang でのビルドができます。
ビルドしてみる
早速ビルドしてみると大量に警告がでます。Visual Studio のコンパイラオプションがないため警告が出ているだけなので、
気にすることはないですが、うるさいのでプロジェクトの修正をしました。(メンドクサイ…)
コンパイルオプションの警告を取り除きましたが、まだ警告が・・・
今回試しにビルドしているプロジェクトでは _s 系の関数は使わず pragma で警告を抑止しているため上記のような警告が出てしまった。
今後も _s に書き換える方針はないので、今回も警告を抑止した。(pragma は使えないので _CRT_SECURE_NO_WARNINGS を define しました)
実際、この辺みんなどうしているのだろうか?
ビルドエラー
LLVM-vs2013 でビルドしたのですが、 type_traits でエラーが出てしまいました。LLVM-vs2012 でもエラーが…
error: cannot mangle RTTI descriptors for type 'codecvt' yetちょっとお手上げです…
もうしばらく弄ってはみるので、何かわかったらここで報告します。
(解決策も募集!)
追記 11/5
もう少し調べてみたら ClangOnWin のファイルリストのページに説明が書いてありました。それによると、RTTI は使えないようです。また、-D_HAS_EXCEPTIONS=0 も必要なようです。
RTTI を無効にするには、「プロジェクト」 - 「プロパティ」からプロパティダイアログを開き、「C/C++」 - 「言語」 - 「ランタイム型情報を有効にする」 を 「いいえ(/GR-)」 に設定します。
これで、ビルドが通るかと思ったのですが、まだダメでした。。。残念
error : cannot mangle the name of type 'basic_streambuf' into RTTI descriptors yet
0 件のコメント:
コメントを投稿