8

ソースからclangとllvmをインストールし、新しい標準の機能を使用してC++コードをコンパイルしようとしています。

たとえば、for範囲の使用は正常に機能しますが、ヘッダーなどfor (i : vector)をインポートする必要があるときに問題が発生する(ヘッダーファイルが見つからない)ことがわかりました。<unordered_set><tuple>

これらのヘッダーを使用するには、新しいlibc ++を使用する必要がありますか、それとも単純なビルド変更を行う必要がありますか?現時点では、clangとllvmをホームディレクトリのフォルダにビルドし、そこからclang++を呼び出しています。

4

2 に答える 2

11

http://clang.llvm.org/get_started.htmlを参照してください。

Clang C ++サポートに取り組むつもりなら、C++標準ライブラリヘッダーを見つける方法を教える必要があるかもしれません。Clangがシステムのlibstdc++ヘッダーを見つけられない場合は、次の手順に従ってください。

  • gcc -v -x c ++ / dev /null-fsyntax-パスを取得するためだけに。

  • clang / lib / Frontend / InitHeaderSearch.cppでコメント「FIXME:一時的なハック:ハードコードされたパス」を探し、そのパスを含めるように以下の行を変更します。

于 2012-04-06T18:05:35.500 に答える
4

標準ライブラリにはコンパイラのディストリビューションが付属していますが、自分でビルドする場合は、標準ライブラリ自体をビルドする必要があります。一部のコンポーネントはヘッダーのみである場合がありますが、すべてがそうであるとは限りません。

したがって、ライブラリをビルドしない場合でも、少なくともライブラリをダウンロードする必要があります。ClangはGCCのlibstdc++を使用できますが、libc++プロジェクトもあります。

于 2012-04-06T18:06:01.067 に答える