AC-Compiler mit dem Ziel, eine schnelle Kompilierung und geringe Speichernutzung mit guter Diagnose zu ermöglichen.
Aro ist als alternatives C-Frontend im Zig-Compiler enthalten, um translate-c
und schließlich C-Dateien zu kompilieren, indem diese zunächst in Zig übersetzt werden. Aro wird unter https://github.com/Vexu/arocc entwickelt und die Zig-Abhängigkeit wird bei Bedarf von dort aktualisiert.
Derzeit wird der Großteil des Standard-C bis C23 unterstützt, ebenso wie viele der gängigen Erweiterungen von GNU, MSVC und Clang
Die grundlegende Codegenerierung wird für x86-64-Linux unterstützt und kann eine gültige Hallo-Welt erzeugen:
$ 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!
Im Folgenden wird davon ausgegangen, dass Ihr Paket über eine build.zig.zon
-Datei verfügt.
zig fetch --save git+https://github.com/Vexu/arocc.git
Fügen Sie Folgendes zu Ihrer build.zig
hinzu:
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" ,
});
Jetzt können Sie es tun
const aro = @import ( "aro" );
in Ihrem Zig-Code.