C ++ - Header-Dateien in Python konvertieren

8

Ich habe einen C ++ - Header, der #define-Anweisungen, Enums und Strukturen enthält. Ich habe versucht, das h2py.py-Skript, das mit Python enthalten ist, vergeblich zu verwenden (außer mir die konvertierten #defines zu geben). Jede Hilfe würde sehr geschätzt werden.

    
williamtroup 17.12.2008, 10:53
quelle

4 Antworten

11

Ich kenne h2py nicht, aber vielleicht möchten Sie sich 'ctypes' und 'ctypeslib' anschauen. Ctypes ist in Python 2.5+ enthalten und zielt darauf ab, Binärkompatibilität mit C-Strukturen zu erstellen.

Wenn Sie ctypeslib hinzufügen, erhalten Sie ein Unterwerkzeug namens codegen, das ein 'h2xml.py' Skript und ein 'xml2py.py' hat, dessen Kombination automatisch den von Ihnen gesuchten Python-Code erzeugt für aus C ++ - Header.

ctypeslib: Ссылка

h2xml.py benötigt ein anderes Tool namens gccxml: Ссылка

Es ist am besten, die neueste Version von gccxml (via CVS) auszuprobieren und selbst zu erstellen (eigentlich einfacher als gesagt). Die vorinstallierte Version ist alt.

    
Snoopy 17.12.2008, 17:06
quelle
2

Gerade gefunden pycparser . Kann nützlich sein.

    
Nick 11.05.2009 13:39
quelle
1

Soweit ich das beurteilen kann, ist h2py.py nicht dazu gedacht, etwas anderes als #define-Makros zu konvertieren. Ich bin auf cppheaderparser gestoßen, was einen Blick wert ist.

    
Fred Larson 17.12.2008 16:18
quelle
-1

Woher hast du die Idee, dass h2py etwas mit Strukturen oder enums zu tun hat?

Von der Quelle

%Vor%

Die Wörter 'enum' und 'struct' erscheinen niemals im Modul.

    
S.Lott 17.12.2008 16:19
quelle