Ich möchte Clang und LibTooling verwenden, um einige C++ - Quellenanalyse- und Transformationstools zu erstellen. Ich habe Clang und LibTooling nach this Tutorial erstellt, und ich war in der Lage, einige Analyse-Tools zu starten und zu erstellen und C++ - Programme mit der Clang-Binärdatei zu kompilieren, die ich gebaut habe. Wenn ich jedoch Header aus der Standardbibliothek (entweder in Quelldateien oder in meinen Tools) einfüge, stoße ich beim Kompilieren oder Ausführen der Quelldateien/Tools auf Probleme. Zum Beispiel, wenn ich Klirren-Check auf der folgenden C++ Quelldatei ausführen:Verwendung der Standardbibliothek mit Clang und LibTooling
#include <iostream>
int main() {
std::cout << "Hello";
return 0;
}
I ": 'Iostream' Datei nicht gefunden fatale Fehler" erhalten. (Hinweis: Ich kann C++ - Programme kompilieren, zB solche mit benutzerdefinierten Klassen, nur keine C++ - Programme mit der Standardbibliothek.) Um das Problem zu lösen, habe ich libC++ (nach this) erstellt und im llvm/project erstellt Verzeichnis, in dem ich LLVM und Clang erstellt habe, aber ich habe immer noch Probleme mit Clang und den Tools, libC++ zu benutzen. Nun, wenn ich versuche, eine Testdatei zu kompilieren mit:
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
Dann bekomme ich „fatale Fehler:‚unistd.h‘Datei nicht gefunden“. Meine Frage ist also: Wie weise ich Clang und meine Werkzeuge richtig darauf hin, libC++ zu benutzen?
Ich verwende OS X Yosemite 10.10 und benutze Clang 3.6.0.