Я начинаю играть с libtooling. Если
CXTranslationUnit tu = clang_parseTranslationUnit(index, argv[argc-1],
argv+1, argc-2,
0, 0,
CXTranslationUnit_None);
unsigned n = clang_getNumDiagnostics(tu);
if (n) {
for (unsigned i=0, n=clang_getNumDiagnostics(tu); i!=n; ++i) {
CXDiagnostic diag = clang_getDiagnostic(tu, i);
auto opt = clang_defaultDiagnosticDisplayOptions();
CXString string = clang_formatDiagnostic(diag, opt);
std::cerr << "[ERROR] " << clang_getCString(string) << std::endl;
clang_disposeString(string);
}
return 1;
}
использовать следующие аргументы командной строки
-stdlib=libc++ -ISOME_PATH/llvm-trunk/lib/clang/11.0.0/include -ISOME_PATH/llvm-trunk/include/c++/v1 -v source.h
, то получится следующий вывод:
clang version 11.0.0 (https://github.com/llvm/llvm-project.git 7339fca25facb566e969b6ce01f23ac96499d574)
Target: x86_64-apple-darwin19.2.0
Thread model: posix
InstalledDir:
ignoring nonexistent directory "lib/clang/11.0.0/include"
ignoring nonexistent directory "/usr/include"
#include "..." search starts here:
#include <...> search starts here:
SOME_PATH/llvm-trunk/lib/clang/11.0.0/include
SOME_PATH/llvm-trunk/include/c++/v1
/usr/local/include
/System/Library/Frameworks (framework directory)
/Library/Frameworks (framework directory)
End of search list.
[ERROR] SOME_PATH/llvm-trunk/include/c++/v1/cstddef:44:15: fatal error: 'stddef.h' file not found
Файл stddef.h наверняка указан в каталоге SOME_PATH / llvm-trunk / include / c ++ / v1, который является частью пути поиска. Кроме того, он указан в SOME_PATH / llvm-trunk / lib / clang / 11.0.0 / и также включен в путь поиска.
По какой причине эти файлы не рассматриваются?