Clang と LibTooling を使用して、C++ ソース分析および変換ツールを作成したいと考えています。このチュートリアルに従って Clang と LibToolingを作成しました。作成した Clang バイナリを使用して、いくつかの分析ツールを実行および作成し、C++ プログラムをコンパイルすることができました。ただし、標準ライブラリのヘッダーを (ソース ファイルまたはツールに) 含めると、ソース ファイル/ツールをコンパイルまたは実行するときに問題が発生します。たとえば、次の C++ ソース ファイルに対して clang-check を実行するとします。
#include <iostream>
int main() {
std::cout << "Hello";
return 0;
}
「致命的なエラー: 'iostream' ファイルが見つかりません」というメッセージが表示されます。(注: 標準ライブラリを使用する C++ プログラムではなく、ユーザー定義クラスを含む C++ プログラムをコンパイルできます。) この問題を解決するために、libc++ をビルドしました (このガイドに従って、llvm/project でビルドします)。 LLVM と Clang をビルドしたディレクトリ) に移動しましたが、Clang とツールで libc++ を使用するのにまだ問題があります。ここで、次を使用してテスト ファイルをコンパイルしようとすると、次のようになります。
export CPLUS_INCLUDE_PATH="~/clang-llvm/llvm/projects/libcxx/include"
export LD_LIBRARY_PATH="~/clang-llvm/llvm/projects/libcxx/lib"
~/clang-llvm/llvm/build/bin/clang++ ~/Documents/main.cpp
次に、「致命的なエラー: 'unistd.h' ファイルが見つかりません」というメッセージが表示されます。だから私の質問はこれです.Clangと私のツールがlibc ++を使用するように正しく指示するにはどうすればよいですか?
OS X Yosemite 10.10 を実行しており、Clang 3.6.0 を使用しています。