4

Visual Studio 210 を使用して Windows 7 で clang をビルドすることができましたが、今では codeblocks IDE でそれを使用するのが好きです。そこで、clang 実行可能ファイルを mingw bin\ フォルダーにコピーし、コードブロックのコンパイラー設定を更新して、gcc の代わりに clang を使用するようにしました。

しかし、Hello World の例をコンパイルすると、次のエラーが発生します。

||=== clang_test, Debug ===|
obj\Debug\main.o:c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\system_error|447|undefined reference to `std::iostream_category()'|
obj\Debug\main.o:c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\stdexcept|170|undefined reference to `std::exception::exception(char const* const&)'|
||=== Build finished: 2 errors, 0 warnings ===|

私はclangのヘッダーファイルを使用する必要があると思いますが、どうすればそれを達成できますか?

ありがとう!

4

3 に答える 3

8

アップデート

MSYS2 パッケージは 32 ビットおよび 64 ビットでの clang で利用でき、私が行った限られたテストから、それは非常にうまく機能しているようです。コンパイラは、MSYS2 環境の外から使用できます。

MSYS2のインストール方法については、こちらをご覧ください。次に、実行するだけです

pacman -Sy mingw-w64-x86_64-clang

また

pacman -Sy mingw-w64-i686-clang

MSYS2を更新してClangをインストールした後。

そのパッケージで使用されているパッチ (LLVM/Clang を自分でビルドする場合) は、こちらにあります


古い返信が続きますが、少し古くなっています

Windows で C++ 用に Clang を使用する場合、現時点で唯一の選択肢は、Clang を MinGW(-w64) で使用する (または自分でビルドする) ことです。

幸運なことに、私はパッケージを提供します:

両方を同じディレクトリに解凍して に追加mingw32-dw2/binするPATHか、コードブロックをそこに向けます。GCC 4.6 の libstdc++ に制限されます。ただし、Clang 3.2 の C++11 言語サポートは完全に機能します。

Clang は GCC スタイルのオプションを想定しているため、Codeblocks GCC ビルド プロセスを変更し、 と で置き換えることをおg++勧めclang++gccますclang

于 2013-01-19T22:20:28.387 に答える
1

clang はまだ MSVC C++ ABI をサポートしていないため、C++ コードを正しくコンパイルできません。

更新: 2014 年 12 月現在、clang は (heh) 例外を除く MSVC をサポートしています。コードをコンパイルするには、あなたがしなければならないでしょう

clang-cl.exe /D_HAS_EXCEPTIONS=0 foo.cpp

clang.exe を直接使用する場合:

clang++ -target i686-pc-windows-msvc -D_HAS_EXCEPTIONS=0 foo.cpp -o foo.exe

MSVC サポートの最新ステータスについては、http: //clang.llvm.org/docs/MSVCCompatibility.html を参照してください。

于 2013-01-19T22:03:49.953 に答える