CXGO
v0.4.1
CxGo 是一個將 C 原始碼翻譯為 Go 的工具(又稱轉換器、來源到原始碼編譯器)。
它使用 cc v3 進行預處理和解析 C(無 clang/gcc 依賴性!),並使用自訂類型檢查器和 AST 翻譯層來實現最佳輸出。
唯一的要求是:C 程式碼必須使用cxgo
進行編譯,包括標頭。
話雖如此, cxgo
使用了一些技巧來使這個過程變得更容易。
TL;DR 專案目標:
查看常見問題解答,以了解有關該項目的更多常見問題。
該專案是實驗性的!不要在生產和其他敏感環境中依賴它!
儘管它已在多個專案中成功進行了測試,但它可能會因為未知的錯誤而改變程式碼的行為。
編譯測試結果:
轉譯項目:
go install github.com/gotranspile/cxgo/cmd/cxgo@latest
或從 Github 下載最新版本。
最快的嘗試方法是:
cxgo file main.c
有關更多詳細信息,請查看我們的範例部分。
它將引導您完成基本的使用模式以及更高級的使用模式(在實際專案中)。
如果您有任何問題,也可以查看常見問題。
以下 C 功能目前已被cxgo
接受,但可能部分實作或根本不實作:
static
(#4)auto
(#5)union
(#7)packed
結構 (#8)asm
case
(#9)goto
被 Go 禁止(不過有一個解決方法,請參考#10)setjmp
(將編譯,但在運行時出現恐慌)#ifdef
路徑加入我們的社群!我們希望收到您的回覆!
請參閱貢獻。
麻省理工學院