27

先週の Going Native カンファレンスで、Chandler Carruth は、Windows 上で clang を実行するためのビルド済みバイナリの存在を発表しました。同じ情報がこちらのブログ投稿にあります。これの対象読者は Visual Studio のユーザーですが、コマンド ラインから clang を実行したいと考えています。

インストーラーを実行し、LLVMbinディレクトリをパスに追加しましたが、「Hello world」をコンパイルしようとすると、次のようになります。

C:\>clang hello.cpp
hello.cpp:1:10: fatal error: 'iostream' file not found
#include <iostream>
         ^
1 error generated.

Windowsでclangを実行するように設定する方法に関する情報が見つかりません.clangに標準ライブラリヘッダーを検索する場所を指示する方法を理解した後、どこを探すべきかを指示する必要があると思います.リンクするライブラリ用。誰かがセットアップを順を追って説明したり、そのようなウォークスルーを教えてくれたりできますか?

4

3 に答える 3

19

これは古い質問であり、その後多くのことが変更されました。これは Windows で Clang を試すときによくある問題であるため、最新の回答が必要です。

2017 年現在、Windows 用の LLVM 3.9.1 ビルドではclang、シェルから呼び出すことができるようにするには、次のものが必要です。

VC++ ビルド ツール

Windows 用の libc++ ポートはまだないため、Clang は VC++ ライブラリと VC++ リンカーを使用します。

まず最初に、システムにVC++ ビルド ツールが必要です。Visual C++ IDE を持っている場合は、それらが既にインストールされていることに注意してください。

環境変数

ビルド ツールとそのライブラリの場所を Clang に伝える必要があります。

オプション 1 (vcvarsall.bat)

これは最も簡単で標準的なオプションです。

走る

> "%VS140COMNTOOLS%../../VC/vcvarsall.bat" amd64

Clangのターゲット アーキテクチャに置き換えamd64ます。別のバージョンの VC++ ツールセットを使用している場合も同様に置き換えることができます。x86amd64arm%VS140COMNTOOLS%

cmd+vcvarsall開くコマンド プロンプトごとにこのバッチを呼び出す必要があるため、ショートカットとして、の代わりに Visual C++ コマンド プロンプトを実行できます。

これでClangを楽しむことができます。

オプション 2 (手動)

このプロセスを実行できない場合、vcvarsall.batまたは自動化したい場合は、ようこそ。私も同じニーズがありました。

次の環境変数はすべて によって自動的に設定されるvcvarsall.batため、それを実行してそこからマシンの値を取得できます。例として地雷を挙げますが、他の場所でも同じであることを願っています。

環境INCLUDE変数をC:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\INCLUDE;C:\Program Files (x86)\Windows Kits\10\include\10.0.10240.0\ucrt;C:\Program Files (x86)\Windows Kits\8.1\include\shared;C:\Program Files (x86)\Windows Kits\8.1\include\um;C:\Program Files (x86)\Windows Kits\8.1\include\winrt;

に設定LIBC:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\LIB\amd64;C:\Program Files (x86)\Windows Kits\10\lib\10.0.10240.0\ucrt\x64;C:\Program Files (x86)\Windows Kits\8.1\lib\winv6.3\um\x64;ます。アーキテクチャ固有のコンポーネントに注意してください。

ビルド ツールについては、ツールをオンにするか、環境変数をPATHセットアップすることができます。VCINSTALLDIRClang は両方を試し、 を優先しVCINSTALLDIRます。

VCINSTALLDIRに設定%VS140COMNTOOLS%../../VCまたは追加%VS140COMNTOOLS%../../VC/bin/amd64しますPATH

脚注

これはすべて非常に文書化されていないため、要件はいつでも変更される可能性がありますが、Clang MSVC ドライバーは、Windows レジスターや他の多くのトリックを照会することにより、これを可能な限り自動化しようとしています。未来。

于 2017-03-01T19:35:08.287 に答える