CXGO
v0.4.1
CxGo は、C ソース コードを Go に変換するツールです (トランスパイラー、ソース間コンパイラーとも呼ばれます)。
C の前処理と解析に cc v3 を使用し (clang/gcc 依存関係はありません!)、カスタムの型チェッカーと AST 変換層を使用して、可能な限り最高の出力を実現します。
唯一の要件は、C コードはヘッダーを含めてcxgo
でコンパイルする必要があることです。
そうは言っても、 cxgo
このプロセスを簡単にするためにいくつかのトリックを使用します。
プロジェクトの目標に関する TL;DR:
プロジェクトに関する一般的な質問については、FAQ を確認してください。
このプロジェクトは実験的なものです!本番環境やその他の機密性の高い環境では、これに依存しないでください。
複数のプロジェクトでテストは成功しましたが、まだ未知のバグによりコードの動作が変わる可能性があります。
コンパイラのテスト結果:
トランスパイルされたプロジェクト:
go install github.com/gotranspile/cxgo/cmd/cxgo@latest
または、Github から最新リリースをダウンロードします。
それを試す最も速い方法は次のとおりです。
cxgo file main.c
詳細については、例のセクションを確認してください。
基本的な使用パターンだけでなく、より高度な使用パターン (実際のプロジェクトでの) もガイドします。
問題がある場合は、FAQ も確認してください。
以下の C 機能は現在cxgo
で受け入れられていますが、部分的に実装されるか、まったく実装されない可能性があります。
static
(#4)auto
(#5)union
(#7)packed
構造体 (#8)asm
case
(#9)goto
Go によって禁止されています (ただし、回避策はあります。#10 を参照)setjmp
(コンパイルは実行されますが、実行時にパニックが発生します)#ifdef
パスを考慮する私たちのコミュニティに参加してください!ご連絡をお待ちしております。
「貢献」を参照してください。
マサチューセッツ工科大学