アップデート:
この質問に対する上位 2 つの回答を組み込んだ詳細なチュートリアルを作成しました。http://blog.johannesmp.com/2015/09/01/installing-clang-on-windows-pt1/
要約
Windows では、次のプログラムが与えられます。
#include <iostream>
int main()
{
int arr[] = {1, 2, 3, 4, 5};
for(auto el : arr)
{
std::cout << el << std::endl;
}
return 0;
}
次のことができるようにしたいです:
clang++ hello.cpp -o hello.exe -std=c++14
そして64ビットの実行ファイルを入手してただ機能する-I
clang に他の標準 C++ ヘッダーの場所を指示するために大量のインクルードを追加したくありませんiostream
。また、複数の手順でリンクする必要もありません。
パフォーマンス、効率、どのリンカーが使用されているかなどについてはあまり気にしていません。clang/gcc/その他を適切にセットアップして、上記のような単一の簡単なコンソール コマンドを使用できるようにしたいだけです。
そのためには何をインストールする必要がありますか?ただ働く?
問題
私は主にMac/Linuxユーザーなので、パッケージマネージャーを使ってclangの最新バージョンをインストールすることに慣れています。ただ機能する。
私は現在、Windows 上で clang/gnu コンパイラをセットアップしようとしていますが、非常に難しいようです。それは、わかりやすいドキュメントがほとんどまたはまったく存在しないためです (私が見つけた限りでは)
私はこのチュートリアルに従ってみました:https://yongweiwu.wordpress.com/2014/12/24/installing-clang-3-5-for-windows- そして、これを使用して clang をビルドしてリンクすることができました (gcc 4.8.2 を使用) が、結果として得られたバイナリは 32 ビットでした。
私はclangの最新のビルド済みバイナリをインストールしようとしました(3.6.2) および mingw-w64 の 64 ビット バージョン (4.9.3 64 ビット、POSIX、例外の sjlj)、そして以下を取得しています:
hello.cpp:1:10: fatal error: 'iostream' file not found
#include <iostream>
^
1 error generated.
これは、clang が gcc のファイルを認識しないことを示しているようです。LLVM/clang の一部のバージョンは特定のバージョンの gcc のみを探しているようですが、そのことはどこにも文書化されていないようです。
同様に、LLVM IRC で誰かが、特定のパスで gcc を探すために clang のドライバーを変更する必要があると言っていました。
私が探しているもの
clang++
必要に応じてLLVM/Clangをソースからビルドしても問題ありませんが、 Mac/Linuxと同じくらい簡単に使用できる、明確で段階的な手順を求めています。
何かのようなもの:
- LLVM/Clangをビルド
this version
して配置するthat directory
this version
cygwin (または mingw32 または mingw-w64) をダウンロードしてインストールし、 をインストールしますthese packages
。- 等..
ベストアンサー1
インストールしてみてくださいMSYS2次に、mingw-w64-x86_64-clang (バイナリ) パッケージをインストールします。
pacman -S mingw-w64-x86_64-clang
現時点では少し古いバージョン (3.6.2) ですが、これで十分でしょう。その後、MSYS2 が提供する Win64 シェルを実行すると、clang
パスが表示されます。
それでも十分ではない場合、私は最近、MSYS2 を使用して clang の 64 ビット バージョンを構築し、それを使用してネイティブ 64 ビット Windows 実行ファイルをコンパイルしています。私のプロセスは次のようになります。
- pacman を使用して、base-devel、mingw-w64-x86_64-ninja、mingw-x86_64-cmake およびビルド プロセスに必要なその他のパッケージをインストールします。
- 掴むclang用のPKGBUILDスクリプトと同じディレクトリ内のファイルこれは、mingw-w64-clang-svnMSYS2 のパッケージは、主に Martell Malone の作品です。MSYS2 IRC チャネルで彼を見つけて、詳細について尋ねることができます。
- Win64 シェルで、PKGDUILD のあるディレクトリに移動し、 を実行して
export MINGW_INSTALLS=mingw64
(64 ビット バージョンのみをコンパイルすることになります)、 を実行しますmakepkg-mingw
。
1 回目の試行ですべてが正しく実行される可能性は低く、一部のファイルを編集する必要がある可能性があります。前回これを行ったときから Clang が変更されている可能性があり、一部のパッチが適切に適用されない可能性があります。