2011-11-28 9 views
16

Me gustaría generar C wrappers sobre C++ API usando SWIG.¿Cómo puedo generar C wrappers sobre API C++ utilizando SWIG?

De la documentación TRAGO SWIG and C++:

6,2 Enfoque

Envolver C++, TRAGO utiliza un enfoque por capas a la generación de código. En el nivel más bajo, SWIG genera una colección de envoltorios de estilo ANSI-C de procedimiento. Estas envolturas se encargan de la conversión de tipo básico , comprobación de tipos, manejo de errores y otros detalles de bajo nivel del enlace C++> . Estas envolturas también son suficientes para unir C++ a cualquier idioma de destino que admite procedimientos incorporados. En cierto sentido, puede ver esta capa de ajuste como que proporciona una interfaz de biblioteca C para C++.

Sin embargo, no veo ninguna opción para hacer eso, sin generar código para usar la API en un lenguaje como Python, Ruby, etc. ¿Cómo puedo obtener solo las C wrappers?

Respuesta

12

Aunque la rama principal de SWIG no puede generar C wrappers para C++ API (la documentación SWIG citada en la pregunta es un poco engañosa), hay una rama SWIG creada durante Google Summer of Code 2008 y disponible en https://swig.svn.sourceforge.net/svnroot/swig/branches/gsoc2008-maciekd/ que hace ese. He encontrado la respuesta aquí: C++ to C Wrapper using SWIG (for FLTK)

+4

Vale la pena señalar que hubo otro proyecto GSOC para que este año (2012) como se menciona [aquí] (http://sourceforge.net/news/?group_id=1645&id=309764) . Aún no está completo, pero espero que llegue a buen término esta vez. – Milliams

Cuestiones relacionadas