まず、私は"Getting Started: Building and Running Clang"に従った。特に、「Visual Studioを使用する」セクションに従って作成しました。Clang on Windows
私がしようとしている簡単なプログラム:つまり、私はMinGWの分布に含めるとライブラリパス第二に、私は手動で設定しているのVisual Studioに2010
を使用して構築されてきましたコンパイル:
#include <iostream>
using namespace std;
int main() {
cout << "Hello, World!" << endl;
return 0;
}
私は、コンパイラから、次のフィードバックを得る:
In file included from C:\MinGW\lib\gcc\mingw32\4.5.2\include\c++\iostream:39:
In file included from C:\MinGW\lib\gcc\mingw32\4.5.2\include\c++\ostream:39:
In file included from C:\MinGW\lib\gcc\mingw32\4.5.2\include\c++\ios:38:
In file included from C:\MinGW\lib\gcc\mingw32\4.5.2\include\c++\iosfwd:41:
In file included from C:\MinGW\lib\gcc\mingw32\4.5.2\include\c++\bits/postypes.h:41:
C:\MinGW\lib\gcc\mingw32\4.5.2\include\c++\cwchar:144:11: error: no member named 'fgetws' in the global namespace
using ::fgetws;
~~^
C:\MinGW\lib\gcc\mingw32\4.5.2\include\c++\cwchar:146:11: error: no member named 'fputws' in the global namespace
using ::fputws;
~~^
C:\MinGW\lib\gcc\mingw32\4.5.2\include\c++\cwchar:150:11: error: no member named 'getwc' in the global namespace
using ::getwc;
~~^
C:\MinGW\lib\gcc\mingw32\4.5.2\include\c++\cwchar:151:11: error: no member named 'getwchar' in the global namespace
using ::getwchar;
~~^
C:\MinGW\lib\gcc\mingw32\4.5.2\include\c++\cwchar:156:11: error: no member named 'putwc' in the global namespace
using ::putwc;
~~^
C:\MinGW\lib\gcc\mingw32\4.5.2\include\c++\cwchar:157:11: error: no member named 'putwchar' in the global namespace
using ::putwchar;
~~^
6 errors generated.
Build error occurred, build is stopped
Time consumed: 646 ms.
明白な質問は、なぜこれを取得するのですか?
また、私は詳細をお知りになりたい、とクランのウェブサイトは非常に簡単な情報を提供し、以来 - 私は誰かが私に以下の質問を明確にできることを考えた:
- 私の知る限りはクランにはない理解して独自の標準ライブラリを持っています(stdC++と思われますか?)。だから私はMinGWのヘッダとライブラリを使わなければならないのです - そうですか?
- Visual StudioとMinGWでClangをビルドすることの違いは何ですか?
clang/lib/Frontend/InitHeaderSearch.cpp
にハードコードパスを含める必要がありますか、それをスキップして、上記のスクリーンショットのように後で "-I"オプションを使用してパスを指定することはできますか?
私が過去に取り組んだのは、MinGWのインクルードフォルダへのパスを含めるようにInitHeaderSearch.cppを変更し、MinGWツールチェーンを使用してビルドすることです。私はVisual C++ツールチェーンを使ってビルドすることもできましたが、ビルドされたコンパイラにMinGWインストールのヘッダーとライブラリを利用する方法を理解できませんでした(Visual C++ C++標準ライブラリヘッダーはVisual C++固有の機能に幅広く依存しているために使用されます)。 –
それはまさに私が考えていたものです。しかし、私にとって最も大きな混乱は、Visual C++またはMinGWを使ったビルドが、Clangコンパイラの使用時に使用されるインクルードパスとライブラリパスに関連することです。言い換えれば、私はClangをコンパイルした後、これらのパスを自由に選択する必要があります。なぜこれらのパスは私がClangを構築するのに使ったコンパイラに依存するのでしょうか? –
@ JamesMcNellis:Clangは現在VC++ヘッダーを解析できるはずです。唯一の問題のある解析領域はMFC IIRCです。 – rubenvb