2012-08-11 25 views
10

¿Es posible hacer estas cosas desde un programa -compiled nativa C o C++ (gcc):genere y ejecute el código LLVM del nativo C/C++

  1. llamada clang y compilar dado C código de una función, pasado como const char *.
  2. Obtenga un puntero y ejecútelo en la máquina virtual LLVM.
  3. Adquiera el resultado en el programa original y continúe.

¿Cómo?

+0

Creo que se necesita un título más descriptivo para captar la atención de más usuarios de SO. – Nawaz

+0

@Nawaz Buen punto, lo he corregido ahora. – Cartesius00

+2

Por supuesto que es posible. Ver http://root.cern.ch/drupal/content/cling por ejemplo. –

Respuesta

7

Para obtener un ejemplo minimalista, consulte Clang interpreter.

Cling es un ejemplo un poco más práctico de tal enfoque.

+0

¿Qué es exactamente aferrarse? – Cartesius00

+0

@James, es un intérprete interactivo en C++ basado en LLVM y Clang y opcionalmente integrado en ROOT. Una especie de reemplazo para su cosa Cint más antigua. –

+0

Esto es lo que publiqué debajo del código. Cling implementa JIT que es ofrecido por llvm, mira este enlace sobre cómo usarlo: http://llvm.org/docs/tutorial/LangImpl4.html – Robin

Cuestiones relacionadas