una poner pelucas peluca paso parte natural lace hacer frontales frontal extensiones craneo cosidas con como cabello c++ llvm clang frontend backend

c++ - poner - extensiones de cabello parte frontal



¿Cómo hacer un frontal limpio clang? (2)

Desafortunadamente, no puede obtener una interfaz de usuario "pura" sin detalles específicos de la máquina. C / C ++ son lenguajes inherentemente vinculados a la máquina. Piense en el preprocesador y las definiciones integradas, los tamaños de los tipos incorporados, etc. Algunos de estos pueden resumirse, pero no por ejemplo el preprocesador.

Estoy trabajando en un proyecto de analizador de fuentes de C ++ y parece que Clang es un buen candidato para el trabajo de análisis. El problema es que Clang depende en gran medida de la infraestructura del proyecto "llvm". ¿Cómo lo configuro para obtener un front-end limpio sin ningún backend orientado a una máquina concreta? Al igual que LCC, proporcionan un backend "nulo" para las personas que se centran en las partes del analizador. Cualquier sugerencia es apreciada.


Hace poco hice esto en Windows.

Descarga la fuente clang y llvm desde here .

Instale cmake y Python (al contrario de los documentos, necesita Python solo para crear el sonido del lenguaje; al menos, cmake se da por vencido si no puede encontrar un tiempo de ejecución de Python).

También necesitas VS2008 o VS2010.

Una cosa que no es del todo obvia es la estructura de directorios requerida:

projectRoot build <- intermediate build files and DLLs, etc. will go here llvm <- contents of llvm-3.0.src from llvm-3.0.tar go here tools clang <- contents of clang-3.0.src from clang-3.0.tar go here

Y siga las instrucciones de compilación de Windows desde el paso 4 en adelante. No intentes usar la GUI de cmake, es un horror; solo usa los comandos dados en las instrucciones de compilación.

Una vez que la compilación esté completa (lo que lleva un tiempo) tendrás:

projectRoot build bin Release <- libclang.dll will be here lib Release <- libclang.lib will be here llvm tools clang include clang-c <- Index.h is here

Index.h define la API para acceder a la información sobre su código fuente; Contiene bastante documentación sobre las API.

Para comenzar a usar Clang necesitas algo como:

CXIndex index = clang_createIndex(1, 1); // Support Microsoft extensions char *args[] = {"-fms-extensions"}; CXTranslationUnit tu = clang_parseTranslationUnit(index, "mySource.c", args, ARRAY_SIZE(args), 0, 0, 0); if (tu) { CXCursor cursor = clang_getTranslationUnitCursor(tu); // Use the cursor functions to navigate through the AST }