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
路径加入我们的社区!我们希望收到您的回复!
请参阅贡献。
麻省理工学院