Skip to content

ebrato/zoc

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 
 
 

Repository files navigation

ZOC (Zig Only C/C++)

ZOC nasce do Zig.

O ZOC é o Zig em versão Lite, focada exclusivamente no compilador C/C++:

  • zoc cc
  • zoc c++

Não é um wrapper externo separado. O binário final é standalone (single-file), com zoc-real (Zig real) e lib embutidos.

Motivação

Criar um compilador single-file standalone, out-of-the-box, com cross-compilação multiplataforma, permitindo ter um único binário para compilar para os principais sistemas operacionais sem baixar nada extra.

O que o ZOC faz

  • compila C e C++ com a interface cc e c++;
  • preserva o modelo de triplet do Clang (<arch>-<vendor>-<sys>-<abi>);
  • mantém compatibilidade com flags e modos de zig cc e zig c++;
  • distribui binário único com toolchain embutida;
  • na matrix, cada binário embute o Zig do próprio target (evita erro InvalidExe por payload incompatível).

Começando rápido

Com um binário do ZOC já pronto:

(cd zoc && ./dist/zoc cc hello.c -o hello)
(cd zoc && ./dist/zoc c++ hello.cpp -o hello_cpp)

Se você está usando artefatos da matrix:

(cd zoc && ./dist/zoc cc hello.c -o hello)
(cd zoc && ./dist/zoc c++ hello.cpp -o hello_cpp)

Ajuda e comandos

  • zoc --help mostra o uso do ZOC e linhas de usage de zig cc/zig c++ embutidas;
  • zoc cc --help mostra o help completo do modo C;
  • zoc c++ --help mostra o help completo do modo C++.

Comandos aceitos:

  • cc
  • c++

Exemplo de cross-compilação

(cd zoc && ./dist/zoc cc -target x86_64-windows-gnu hello.c -o hello.exe)
(cd zoc && ./dist/zoc c++ -target aarch64-linux-musl hello.cpp -o hello_aarch64)

Sistemas e arquiteturas suportados

Sistemas:

  • linux
  • macos
  • windows

Arquiteturas:

  • i386
  • amd64
  • arm64
  • arm6
  • arm7
  • arm8
  • aarch64

Targets da matrix:

  • linux-x86_64
  • linux-x86
  • linux-armv6
  • linux-armv7
  • linux-armv8
  • linux-aarch64
  • macos-x86_64
  • macos-aarch64
  • windows-x86
  • windows-amd64
  • windows-aarch64

Documentação de build

O tutorial completo de build foi movido para:

Agradecimentos

About

ZOC é o Zig, porém somente o compilador C/C++.

Topics

Resources

Stars

Watchers

Forks

Packages

 
 
 

Contributors

Languages