libclang: ошибка: clang-c / Index.h: нет такого файла или каталога - PullRequest
6 голосов
/ 23 мая 2011

Я пытался использовать clang для разбора кода на С ++, но не могу скомпилировать исходный код, потому что не могу найти заголовки libclang.

Я использую Ubuntu 10.04 и успешно установил clang и llvm из репозиториев.

Скажите, пожалуйста, где найти файл для включения.

Пример, который я пытаюсь запустить:

    #include<clang-c/Index.h>

    int main(int argc, char *argv[]) {
    CXIndex Index = clang_createIndex(0, 0);
    CXTranslationUnit TU = clang_parseTranslationUnit(Index, 0,argv, argc, 0, 0, CXTranslationUnit_None);
    for (unsigned I = 0, N = clang_getNumDiagnostics(TU); I != N; ++I) {
    CXDiagnostic Diag = clang_getDiagnostic(TU, I);
    CXString String = clang_formatDiagnostic(Diag,
    clang_defaultDiagnosticDisplayOptions());
    fprintf(stderr, "%s\n", clang_getCString(String));
    clang_disposeString(String);
    }
    clang_disposeTranslationUnit(TU);
    clang_disposeIndex(Index);
    return 0;
    }

Ответы [ 2 ]

4 голосов
/ 25 мая 2011

Пакет clang-2.7 из Ubuntu 10.04 http://packages.ubuntu.com/lucid/devel/clang не содержит заголовочный файл clang-c/Index.h и не имеет libclang.so:

http://packages.ubuntu.com/lucid/i386/clang/filelist

Ни один из них не делает llvm-пакет dev: http://packages.ubuntu.com/lucid/i386/llvm-dev/filelist

Итак, в Ubuntu 10.04 нет пакета clang с libclang или чего-либо, связанного с разработкой clang.

Как предложил Бантар, вы должны использовать clang с сайта llvm, либо построенного изисходники (это легко в Ubuntu) или упакованные в двоичный пакет.

2 голосов
/ 18 сентября 2015

Как сказал Адам Монсен в комментарии к принятому ответу, начиная с Ubuntu 13.10, файл предоставляется следующим пакетом:

libclang-3.4-dev

Измените номер версии в соответствии с вашими требованиями.Файл находится в

/usr/lib/llvm-3.4/include/clang-c/Index.h

...