Rust no Windows: resolva o erro linker 'cc' not found em 5 minutos

Treinador Online de Python para Iniciantes

Aprenda Python facilmente sem sobrecarga teórica. Resolva tarefas práticas com verificação automática e escreva código diretamente no navegador.

Start Course

Introdução: Primeiro encontro com o "dragão vermelho"

\n\n

Você acabou de começar a estudar Rust. Baixou o compilador, escreveu seu primeiro hello.rs, executou cargo build... E então o terminal explode em vermelho com a mensagem: "linker 'cc' not found". Familiar? Se você está no Windows 10, usando o subsistema WSL com Debian, esse erro é um clássico "alô" do mundo da programação de sistemas.

\n\n

Não entre em pânico. Isso não é um bug do Rust, é uma questão de configuração do ambiente. Neste artigo, vamos não apenas resolver esse problema de uma vez por todas, mas também falar sobre como otimizar o processo de build para que seu código compile mais rápido. Afinal, Rust é famoso por sua performance, e devemos dar ao compilador as melhores ferramentas para trabalhar.

\n\n

Por que ocorre o erro "linker 'cc' not found"?

\n\n

Para entender o inimigo, precisamos conhecê-lo de frente. Rust é uma linguagem compilada. Quando você executa cargo build, o compilador rustc transforma seu código em código de máquina. Mas a etapa final — a linkagem (junção dos arquivos objeto em um executável) — é feita por um programa externo: o linker.

\n\n

Por padrão, em sistemas Linux (incluindo WSL Debian), o Rust procura pelo linker cc. Este é um link simbólico que geralmente aponta para gcc ou clang. Se no seu sistema WSL não houver um compilador C instalado (GCC ou Clang), o link cc não existirá. O Rust não sabe como linkerar seu projeto e exibe um erro fatal.

\n\n

Raiz do problema: WSL Debian — instalação mínima

\n

Quando você instala o WSL Debian pela Microsoft Store, obtém um sistema básico. Ele não vem com GCC, Make ou outras ferramentas de desenvolvimento. O Rust não inclui um linker C — essa é uma responsabilidade do ambiente do sistema.

\n\n

Solução nº 1: Correção rápida (instalação do GCC)

\n\n

O caminho mais simples e correto é instalar o conjunto padrão de ferramentas de desenvolvimento C. Abra o terminal WSL Debian e execute:

\n\n
sudo apt update\nsudo apt install build-essential
\n\n

O pacote build-essential é um meta-pacote que inclui gcc, g++, make e, o mais importante, cria o link /usr/bin/cc. Após a instalação, verifique:

\n\n
which cc\n# Deve mostrar: /usr/bin/cc
\n\n

Agora execute cargo build novamente — o erro desaparecerá. O Rust encontrou o linker.

\n\n

Por que isso é importante para a performance?

Ao usar o GCC padrão, você obtém um linker estável e otimizado. O Rust compilará seu projeto com sobrecarga mínima. A otimização começa com as ferramentas certas.

Solução nº 2: Configuração precisa (instalação do Clang)

Se você é fã do LLVM e Clang (e o Rust também usa LLVM internamente), pode instalá-lo em vez do GCC. Isso pode trazer um pequeno ganho de velocidade de linkagem em alguns projetos.

sudo apt install clang lld
# Cria o link manualmente, se não existir
sudo ln -s /usr/bin/clang /usr/bin/cc

Verificação:

cc --version
# Deve mostrar Clang

Importante: O LLD (LLVM Linker) geralmente é mais rápido que o GNU ld clássico. Para grandes projetos Rust, isso pode reduzir o tempo de build em 10-20%. Instalar o Clang não é apenas corrigir um erro, é otimizar a performance da compilação.

Solução nº 3: Solução alternativa (especificar o linker manualmente)

Existem situações em que você não quer instalar GCC ou Clang (por exemplo, em um servidor de produção com restrições). Você pode dizer explicitamente ao Rust qual linker usar. Mas atenção: sem um linker instalado, esta solução não funcionará.

Crie o arquivo ~/.cargo/config.toml (ou /.cargo/config.toml para configuração global):

[target.x                

Blogs

Book Recommendations