Chamando funções C e vinculando bibliotecas
Vincule-se à libc e a bibliotecas externas.
Chamando funções C e vinculando bibliotecas é uma aula grátis de Zig Academy no CoddyKit. Esta é a aula 2 de 4. Você pode ler a aula completa abaixo gratuitamente — depois pratica ao vivo no navegador com um editor de código integrado e um tutor de IA 24/7. Faz parte do caminho de aprendizado de Zig Academy, e seu progresso é sincronizado entre a web e o app CoddyKit. O curso de Zig Academy inclui 4 aulas no total.
Importar não é vincular
@cImport fornece as declarações, mas o código de máquina real ainda está em uma biblioteca C à qual você precisa vincular o programa.
Vincule à libc
A maioria das chamadas C precisa da biblioteca padrão de C. Configure a compilação para vincular à libc, para que funções como printf sejam resolvidas no momento da vinculação.
exe.linkLibC();Vinculação pela CLI
Para uma execução rápida, passe a opção você mesmo. -lc vincula à libc quando você compila diretamente um único arquivo.
zig build-exe main.zig -lcChame como código nativo
Depois de vincular, uma função C é chamada como uma função de Zig. Você escreve c.printf(...), e Zig cuida da convenção de chamada.
c.printf("%d\n", 42);Correspondência da assinatura
Você deve passar argumentos compatíveis com a assinatura C. Tipos incorretos geram um erro de compilação, pois Zig conhece o protótipo traduzido.
Vincule uma biblioteca nomeada
Para outras bibliotecas, informe o nome delas. linkSystemLibrary diz ao vinculador para incluir algo como a biblioteca matemática.
exe.linkSystemLibrary("m");Os valores de retorno voltam
O valor de retorno de uma função C chega como um valor normal de Zig do tipo traduzido, pronto para ser armazenado ou testado.
const n = c.abs(-5);Erros usam convenções de C
C não tem uniões de erro, portanto as falhas aparecem como códigos de retorno ou como um errno definido. Você os verifica à maneira de C, manualmente.
Nenhuma conversão oculta
Zig não faz nenhuma conversão silenciosa dos seus dados. O que você passa é o que C recebe, mantendo a chamada barata e previsível.
Configuração no arquivo de compilação
Em build.zig, você associa a vinculação ao artefato. A mesma etapa exe que compila seu código também registra as bibliotecas.
exe.linkLibC();
exe.linkSystemLibrary("z");Dois passos para o sucesso
Chamar C é sempre importar e vincular: trazer as declarações e depois garantir que os símbolos reais estejam disponíveis para o vinculador.
Verificação rápida
Pense no que faz uma função C ser realmente resolvida.
Recapitulação
Você aprendeu que chamar C exige tanto a importação quanto a vinculação; depois disso, as funções C são chamadas como funções nativas de Zig. 🎯
Perguntas Frequentes
A aula “Chamando funções C e vinculando bibliotecas” é grátis?
Sim — o texto completo de “Chamando funções C e vinculando bibliotecas” é grátis para ler aqui na web. Para praticá-la interativamente (um editor de código integrado e um tutor de IA 24/7) e desbloquear o restante do curso de Zig Academy, atualize para CoddyKit PRO. O curso de Zig Academy inclui 4 aulas no total.
O que vou aprender em “Chamando funções C e vinculando bibliotecas”?
Vincule-se à libc e a bibliotecas externas. Você pratica Zig Academy com código prático que executa diretamente no navegador, e um tutor de IA 24/7 responde suas dúvidas enquanto trabalha na aula.
Preciso ter experiência prévia para começar Zig Academy?
Nenhuma experiência prévia é necessária. Zig Academy no CoddyKit é estruturado para alunos iniciantes até avançados, então você pode começar aqui ou desde o início e aprender no seu ritmo. Esta é a aula 2 de 4.
Quanto tempo leva a aula “Chamando funções C e vinculando bibliotecas”?
A maioria das aulas CoddyKit leva cerca de 5–10 minutos. Cada uma é compacta e interativa, então você faz progresso constante e retoma exatamente de onde parou entre web e app.
Posso escrever e executar código nesta aula de Zig Academy?
Sim. Cada aula de Zig Academy inclui um editor de código integrado, então você escreve e executa código real direto no navegador e recebe feedback de IA instantaneamente — nenhuma configuração local necessária.
Todas as aulas deste curso
- Importando cabeçalhos C com @cImport
- Chamando funções C e vinculando bibliotecas
- Ponteiros, strings e tipos C
- zig translate-c para ler C como Zig