arocc
1.0.0
AC 編譯器的目標是提供快速編譯和低記憶體使用以及良好的診斷。
Aro 作為替代 C 前端包含在 Zig 編譯器中,用於translate-c
並最終透過先將 C 檔案轉換為 Zig 來編譯 C 檔案。 Aro 是在 https://github.com/Vexu/arocc 中開發的,Zig 依賴項會在需要時從那裡更新。
目前,大多數標準 C 的支援最高可達 C23,以及來自 GNU、MSVC 和 Clang 的許多常見擴展
x86-64 Linux 支援基本程式碼生成,並且可以生成有效的 hello world:
$ cat hello.c
extern int printf(const char *restrict fmt, ...);
int main(void) {
printf("Hello, world!n");
return 0;
}
$ zig build && ./zig-out/bin/arocc hello.c -o hello
$ ./hello
Hello, world!
以下假設您的套件有一個build.zig.zon
檔案。
zig fetch --save git+https://github.com/Vexu/arocc.git
將以下內容加入您的build.zig
:
const aro = b . dependency ( "aro" , .{
. target = target ,
. optimize = optimize ,
});
exe . root_module . addImport ( "aro" , aro . module ( "aro" ));
// Optional; this will make aro's builtin includes (the `include` directory of this repo) available to `Toolchain`
b . installDirectory (.{
. source_dir = aro . path ( "include" ),
. install_dir = .prefix ,
. install_subdir = "include" ,
});
現在你可以做
const aro = @import ( "aro" );
在你的 Zig 程式碼中。