stddef.h не найден при использовании clang_parseTranslationUnit, хотя в (вошли) включенный путь - PullRequest
0 голосов
/ 27 марта 2020

Я начинаю играть с 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 / и также включен в путь поиска.

По какой причине эти файлы не рассматриваются?

...