CxGo ist ein Tool zum Übersetzen von C-Quellcode in Go (auch bekannt als Transpiler, Source-to-Source-Compiler).
Es verwendet cc v3 für die Vorverarbeitung und Analyse von C (keine clang/gcc-Abhängigkeiten!) sowie einen benutzerdefinierten Typprüfer und eine AST-Übersetzungsschicht, um die bestmögliche Ausgabe zu erzielen.
Die einzige Voraussetzung ist: C-Code muss mit cxgo
kompiliert werden, einschließlich Header.
Allerdings nutzt cxgo
ein paar Tricks, um diesen Prozess zu vereinfachen.
TL;DR für die Projektziele:
Weitere häufig gestellte Fragen zum Projekt finden Sie in den FAQ.
Das Projekt ist experimentell ! Verlassen Sie sich in der Produktion und anderen sensiblen Umgebungen nicht darauf!
Obwohl es in mehreren Projekten erfolgreich getestet wurde, kann es aufgrund noch unbekannter Fehler zu Änderungen im Verhalten des Codes kommen.
Compiler-Testergebnisse:
Transpilierte Projekte:
go install github.com/gotranspile/cxgo/cmd/cxgo@latest
oder laden Sie die neueste Version von Github herunter.
Der schnellste Weg, es auszuprobieren, ist:
cxgo file main.c
Weitere Informationen finden Sie in unserem Beispielbereich.
Es führt Sie durch grundlegende Nutzungsmuster sowie durch fortgeschrittenere (an realen Projekten).
Sie können auch die FAQ durchsehen, wenn Sie Probleme haben.
Die folgenden C-Funktionen werden derzeit von cxgo
akzeptiert, können jedoch teilweise oder überhaupt nicht implementiert werden:
static
(#4)auto
(#5)union
mit C-identischem Datenlayout (#7)packed
Strukturen (#8)asm
case
an seltsamen Orten (#9)goto
verboten durch Go (es gibt jedoch einen Workaround, siehe #10)setjmp
(wird kompiliert, gerät aber zur Laufzeit in Panik)#ifdef
Pfade für verschiedene Betriebssysteme/Umgebungen Treten Sie unserer Community bei! Wir würden uns freuen, von Ihnen zu hören!
Siehe BEITRAGEN.
MIT