arocc
1.0.0
좋은 진단을 통해 빠른 컴파일과 낮은 메모리 사용량을 제공하는 것을 목표로 하는 AC 컴파일러입니다.
Aro는 Zig 컴파일러에 Zig 컴파일러의 대체 C 프런트엔드로 포함되어 Zig로 먼저 translate-c
하여 최종적으로 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" );
지그 코드에서.