Tech
[Go 编程语言] 分享一个还在 RC 阶段的项目:把 C 编译成不依赖 cgo 的 Go package
最近把一个持续开发中的项目整理到了可以公开试用的阶段: C2Go Toolchain 。
项目地址: https://github.com/c2gohq/c2go_toolchain
中文文档: https://c2go.buymecompile.top/zh-cn/
当前预发布版本: v0.20260802.0-rc.1
先用一句话说明它在做什么:
C2Go 基于 Clang/LLVM ,把 C 源码提前编译成可由 Go 工具链直接构建的 .go + .s package ;生成结果不使用 import "C" ,使用方可以在 CGO_ENABLED=0 、没有宿主 C 编译器的环境中完成构建。
它不是把 C 文本逐句改写成 Go 源码,也不是在应用启动后嵌入一个 C 编译器。C 的编译发生在生成阶段,最终产物进入普通的 Go build 流程。
为什么做这个项目
Go 调用已有 C 实现时,最成熟的方案当然还是 cgo 。但我想探索的是另一条路径:
能不能继续使用 Clang/LLVM 的 C 前端和优化能力;
...
Read the full discussion on V2EX
This article was aggregated from V2EX. Click to join the conversation.
View on V2EX