2011-05-23 22 views
6

estaba tratando de usar clang para analizar el código de C++, pero no puedo compilar mi código fuente porque no puedo encontrar los encabezados de libclang.libclang: error: clang-c/Index.h: Ningún archivo o directorio

Estoy ejecutando Ubuntu 10.04 y he instalado clang y llvm con éxito desde los repositorios.

Por favor dígame dónde encontrar el archivo para incluir.

El ejemplo que estoy tratando de ejecutar es:

#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; 
    } 
+3

No creo ubuntu paquetes tienen cabeceras y librerías necesarias para utilizar libclang. Probablemente necesites construir llvm + clang de las fuentes. –

+0

Gracias por el puntero Banthar. Intentaremos eso y publicaremos lo antes posible. – ConfusedAboutCPP

+1

Sí, tu consejo funcionó. Gracias. – ConfusedAboutCPP

Respuesta

4

paquete sonido metálico de 2,7-ubuntu 10.04 http://packages.ubuntu.com/lucid/devel/clang doesnt incluir el archivo de cabecera clang-c/Index.h, ni tener un libclang.so:

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

Tampoco el paquete llvm-dev: http://packages.ubuntu.com/lucid/i386/llvm-dev/filelist

Por lo tanto, ubuntu 10.04 no tiene paquete de clang con ingenio h libclang o cualquier cosa relacionada con el desarrollo clang.

Como sugirió Banthar, debe usar clang del sitio llvm, ya sea creado a partir de las fuentes (es fácil en ubuntu) o empaquetado como un paquete binario.

+3

En Ubuntu 13.10 64-bit Desktop, instalé 'libclang-3.4-dev'. Proporciona '/ usr/lib/llvm-3.4/include/clang-c/Index.h'. –

+0

@AdamMonsen, ¡Gracias por más información! En ubuntus más nuevo, la situación es mejor. – osgx

2

Como Adam Monsen dijo en un comentario a la respuesta aceptada, a partir de Ubuntu 13.10, el archivo es proporcionado por el paquete siguiente: número de versión

libclang-3.4-dev

cambiar de acuerdo a sus necesidades. El archivo reside en

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

Cuestiones relacionadas