Passo a passo: Compilar um programa em C na linha de comando

As ferramentas de build do Visual Studio incluem um compilador C, que você pode usar para criar tudo, desde programas básicos de console até aplicativos completos da área de trabalho do Windows, aplicativos móveis e mais. O MSVC (Microsoft Visual C/C++) é um compilador C e C++ que, em suas versões mais recentes, está em conformidade com alguns dos padrões mais recentes da linguagem C, incluindo C11 e C17.

Este passo a passo mostra como criar um programa básico em C do estilo "Olá, Mundo" usando um editor de texto e, em seguida, o compilar na linha de comando. Se você preferir trabalhar em C++ na linha de comando, confira Passo a passo: compilar um programa em C++ nativo na linha de comando. Caso queira experimentar o IDE do Visual Studio em vez de usar a linha de comando, confira Passo a passo: trabalhar com projetos e soluções (C++) ou Como usar o IDE do Visual Studio para desenvolvimento da área de trabalho em C++.

Pré-requisitos

Para concluir esse passo a passo, você deverá ter instalado o Visual Studio ou as Ferramentas de Build do Visual Studio e a carga de trabalho opcional de desenvolvimento da área de trabalho com C++.

O Visual Studio é um poderoso ambiente de desenvolvimento integrado que oferece suporte a um editor completo, gerenciadores de recursos, depuradores e compiladores para muitas linguagens e plataformas. Para obter informações sobre esses recursos e como baixar e instalar o Visual Studio, incluindo o Visual Studio Community Edition gratuito, consulte Instalar o Visual Studio.

As Ferramentas de Build para a versão do Visual Studio instalam apenas o conjunto de ferramentas de linha de comando, os compiladores, as ferramentas as bibliotecas necessárias para compilar programas em C e C++. Elas são perfeitas para criar exercícios de laboratórios ou de sala de aula e são instaladas relativamente rápido. Para instalar apenas o conjunto de ferramentas de linha de comando, baixe as Ferramentas de Build do Visual Studio na página Downloads do Visual Studio e execute o instalador. No instalador do Visual Studio, selecione a carga de trabalho Desenvolvimento da área de trabalho com C++carga de trabalho (em versões mais antigas do Visual Studio, selecione a carga de trabalho ferramentas de compilação C++) e escolha Instalar.

Quando você tiver instalado as ferramentas, há outra ferramenta que você usará para compilar um programa em C ou C++ na linha de comando. O MSVC tem requisitos complexos para que o ambiente de linha de comando encontre as ferramentas, os cabeçalhos e as bibliotecas que ele usa. Você não pode usar o MSVC em uma janela do prompt de comando básico sem qualquer tipo de preparação. Você precisa de uma janela do prompt de comando do desenvolvedor, que é uma janela do prompt de comando regular contendo todo o conjunto de variáveis de ambiente necessárias. Felizmente, o Visual Studio instala atalhos para você inicializar prompts de comando do desenvolvedor que tenham o ambiente configurado para builds de linha de comando. Infelizmente, os nomes dos atalhos do prompt de comando do desenvolvedor e onde eles estão localizados são diferentes em quase todas as versões do Visual Studio a também nas diferentes versões do Windows. Sua primeira tarefa passo a passo é encontrar os atalhos corretos para usar.

Observação

O atalho de prompt de comando do desenvolvedor define automaticamente os caminhos corretos para o compilador e as ferramentas e para os cabeçalhos e bibliotecas necessários. Alguns desses valores são diferentes para cada configuração do build. Se não usar um dos atalhos, você deverá definir esses valores de ambiente por conta própria. Para obter mais informações, confira Usar o conjunto de ferramentas do MSVC na linha de comando. Como o ambiente de build é complexo, é altamente recomendável que você use um atalho do prompt de comando do desenvolvedor em vez de criar seu próprio.

As instruções variam um pouco dependendo da versão do Visual Studio que você está usando. Para ver a documentação da sua versão preferencial do Visual Studio, use o controle seletor de Versão. Ele é encontrado na parte superior da tabela de conteúdo nesta página.

Abrir um prompt de comando do desenvolvedor no Visual Studio 2022

Se você instalou o Visual Studio 2022 no Windows 10 ou posterior, abra o menu Iniciar e escolha Todos os aplicativos. Em seguida, role para baixo e abra a pasta Visual Studio 2022 (não o aplicativo Visual Studio 2022). Escolha Prompt de Comando do Desenvolvedor para VS 2022 para abrir a janela do prompt de comando.

Abrir um prompt de comando do desenvolvedor no Visual Studio 2019

Se você instalou o Visual Studio 2019 no Windows 10 ou posterior, abra o menu Iniciar e escolha Todos os aplicativos. Em seguida, role para baixo e abra a pasta Visual Studio 2019 (não o aplicativo Visual Studio 2019). Escolha Prompt de Comando do Desenvolvedor para VS 2019 para abrir a janela do prompt de comando.

Abrir um prompt de comando do desenvolvedor no Visual Studio 2017

Se você instalou o Visual Studio 2017 no Windows 10 ou posterior, abra o menu Iniciar e escolha Todos os aplicativos. Em seguida, role para baixo e abra a pasta Visual Studio 2017 (não o aplicativo Visual Studio 2017). Escolha Prompt de Comando do Desenvolvedor para VS 2017 para abrir a janela do prompt de comando.

Abrir um prompt de comando do desenvolvedor no Visual Studio 2015

Se você instalou as Ferramentas de Build do Microsoft Visual C++ 2015 no Windows 10 ou posterior, abra o menu Iniciar e escolha Todos os aplicativos. Em seguida, role para baixo e abra a pasta Ferramentas de Build do Visual C++. Escolha Prompt de Comando de Ferramentas Nativas do x86 do Visual C++ 2015 para abrir a janela do prompt de comando.

Se você estiver usando uma versão diferente do Windows, localize no menu Iniciar ou na página Iniciar uma pasta de ferramentas do Visual Studio que contenha um atalho do prompt de comando do desenvolvedor. Você também pode usar a função de pesquisa do Windows para pesquisar "prompt de comando do desenvolvedor" e escolher um que corresponda à versão instalada do Visual Studio. Use o atalho para abrir a janela do prompt de comando.

Em seguida, verifique se o prompt de comando do desenvolvedor está configurado corretamente. Na janela do prompt de comando, insira cl (ou CL, caso não importe o nome do compilador, mas sim as opções do compilador). A saída deve parecer com esta:

C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise>cl
Microsoft (R) C/C++ Optimizing Compiler Version 19.10.25017 for x86
Copyright (C) Microsoft Corporation.  All rights reserved.

usage: cl [ option... ] filename... [ /link linkoption... ]

Pode haver diferenças no diretório atual ou nos números de versão, dependendo da versão do Visual Studio e de quaisquer atualizações instaladas. Se a saída acima for semelhante à exibida, você está pronto para compilar programas em C ou C++ na linha de comando.

Observação

Se você receber um erro como "'cl' não foi reconhecido como um comando interno ou externo, programa operável ou arquivo em lotes", o erro C1034 ou o erro LNK1104 ao executar o comando cl, então ou você não está usando um prompt de comando do desenvolvedor ou algo está errado com a instalação do Visual Studio. Você deve corrigir esse problema para continuar.

Se você não conseguir localizar o atalho do prompt de comando do desenvolvedor ou se receber uma mensagem de erro ao inserir cl, talvez a instalação do Visual Studio esteja com algum problema. Se você estiver usando o Visual Studio 2017 ou posterior, tente reinstalar a carga de trabalho Desenvolvimento da área de trabalho com C++ no instalador do Visual Studio. Para ver detalhes, confira Instalar suporte ao C++ no Visual Studio. Ou reinstale as Ferramentas de Build na página Downloads do Visual Studio. Não avance para a próxima seção até que o comando cl funcione. Para saber mais sobre como instalar e solucionar problemas do Visual Studio, confira Instalar o Visual Studio.

Observação

Dependendo da versão do Windows no computador e da configuração de segurança do sistema, pode ser necessário clicar com o botão direito do mouse para abrir o menu para o atalho do prompt de comando do desenvolvedor e, em seguida, escolher Executar como administrador para conseguir compilar e executar o programa criado seguindo este passo a passo.

Criar um arquivo de origem C e compilá-lo na linha de comando

  1. Na janela do prompt de comando do desenvolvedor, digite cd c:\ para alterar o diretório de trabalho atual para a raiz da unidade C:. Em seguida, insira md c:\hello para criar um diretório e, em seguida, cd c:\hello para alterar para esse diretório. Esse diretório conterá o arquivo de origem e o programa compilado.

  2. Insira notepad hello.c no prompt de comando do desenvolvedor. Na caixa de diálogo de alerta do Bloco de notas que aparece, escolha Sim para criar um novo arquivo hello.c no diretório de trabalho.

  3. No Bloco de notas, insira as seguintes linhas de código:

    #include <stdio.h>
    
    int main()
    {
        printf("Hello, World! This is a native C program compiled on the command line.\n");
        return 0;
    }
    
  4. Na barra de menus do Bloco de notas, escolha Arquivo>Salvar para salvar hello.c no diretório de trabalho.

  5. Volte para a janela do prompt de comando do desenvolvedor. Insira dir no prompt de comando para listar o conteúdo do diretório c:\hello. Você deverá ver o arquivo de origem hello.c na listagem do diretório, que se parece com:

    C:\hello>dir
     Volume in drive C has no label.
     Volume Serial Number is CC62-6545
    
     Directory of C:\hello
    
    10/02/2017  03:46 PM    <DIR>          .
    10/02/2017  03:46 PM    <DIR>          ..
    10/02/2017  03:36 PM               143 hello.c
                   1 File(s)            143 bytes
                   2 Dir(s)  514,900,566,016 bytes free
    
    

    As datas e outros detalhes serão diferentes em seu computador. Se não for possível ver o arquivo de código-fonte, hello.c, verifique se você alterou para o diretório c:\hello criado e, no Bloco de notas, confirme se salvou o arquivo de origem nesse diretório. Verifique também se você salvou o código-fonte com uma extensão de nome de arquivo .c e não uma extensão .txt.

  6. Para compilar o programa, insira cl hello.c no prompt de comando do desenvolvedor.

    É possível ver o nome de programa executável, hello.exe, nas linhas das informações de saída exibidas pelo compilador:

    c:\hello>cl hello.c
    Microsoft (R) C/C++ Optimizing Compiler Version 19.10.25017 for x86
    Copyright (C) Microsoft Corporation.  All rights reserved.
    
    hello.c
    Microsoft (R) Incremental Linker Version 14.10.25017.0
    Copyright (C) Microsoft Corporation.  All rights reserved.
    
    /out:hello.exe
    hello.obj
    

    Observação

    Se você receber um erro como "'cl' não foi reconhecido como um comando interno ou externo, programa operável ou arquivo em lotes", o erro C1034 ou o erro LNK1104, o prompt de comando do desenvolvedor não está configurado corretamente. Para obter informações sobre como corrigir esse problema, volte para a seção Abrir um prompt de comando do desenvolvedor.

    Se você receber um erro ou aviso diferente do compilador ou do vinculador, examine o código-fonte para corrigir erros e, em seguida, salve-o e execute o compilador novamente. Para obter informações sobre erros específicos, use a caixa de pesquisa na parte superior da página para localizar o número do erro.

  7. Para executar o programa, insira hello no prompt de comando.

    O programa exibe este texto e fecha na sequência:

    Hello, World! This is a native C program compiled on the command line.
    

    Parabéns, você compilou e executou um programa em C usando a linha de comando.

Próximas etapas

Este exemplo de "Olá, Mundo" é tão simples quanto um programa em C pode ser. Os programas do mundo real têm arquivos de cabeçalho e mais arquivos de origem, vínculos em bibliotecas e realizam trabalhos úteis.

Você pode usar as etapas neste passo a passo para compilar seu próprio código C em vez de digitar o código de exemplo mostrado. Também é possível compilar muitos programas de exemplo de código C encontrados em outros lugares. Para compilar um programa que tenha mais arquivos de código-fonte, insira todos eles na linha de comando:

cl file1.c file2.c file3.c

O compilador gera um programa chamado file1.exe. Para alterar o nome para program1.exe, adicione uma opção de vinculador /out:

cl file1.c file2.c file3.c /link /out:program1.exe

E para capturar mais erros de programação automaticamente, recomendamos que você compile usando a opção de nível de aviso /W3 ou /W4:

cl /W4 file1.c file2.c file3.c /link /out:program1.exe

O compilador, cl.exe, tem muito mais opções que você pode aplicar para criar, otimizar, depurar e analisar seu código. Para ver uma lista rápida, insira cl /? no prompt de comando do desenvolvedor. Você também pode compilar e vincular separadamente e aplicar opções do vinculador em cenários de compilação mais complexos. Para obter mais informações sobre opções e uso do compilador e do vinculador, confira Referência de Build do C/C++.

Você pode usar NMAKE e makefiles, MSBuild e arquivos de projeto para configurar e compilar projetos mais complexos na linha de comando. Para obter mais informações sobre como usar essas ferramentas, consulte Referência de NMAKE e MSBuild.

As linguagens C e C++ são semelhantes, mas não são as mesmas. O compilador do MSVC (Microsoft Visual C/C++) usa uma regra básica para determinar qual linguagem usar ao compilar o código. Por padrão, o compilador do MSVC trata os arquivos que terminam em .c como código-fonte C e os arquivos que terminam em .cpp, como código-fonte C++. Para forçar o compilador a tratar todos os arquivos como C, independente da extensão de nome de arquivo, use a opção do compilador /TC.

Por padrão, o MSVC é compatível com os padrões ANSI C89 e ISO C99, mas não em estrita conformidade. Na maioria dos casos, o código C portátil será compilado e executado conforme o esperado. O compilador oferece suporte opcional para as alterações no ISO C11/C17. Para compilar com suporte a C11/C17, use o sinalizador de compilador /std:c11 ou /std:c17. O suporte a C11/C17 requer o SDK do Windows 10.0.20201.0 ou posterior. O SDK do Windows 10.0.22000.0 ou posterior é recomendado. Você pode baixar o SDK mais recente na página SDK do Windows. Para obter mais informações e instruções sobre como instalar e usar esse SDK para desenvolvimento em C, consulte Instalar o suporte a C11 e C17 no Visual Studio.

Determinadas funções de biblioteca e nomes de função POSIX são preteridos pelo MSVC. As funções têm suporte, mas os nomes preferenciais foram alterados. Para obter mais informações, confira Recursos de segurança na CRT e Aviso do Compilador (nível 3) C4996.

Confira também

Passo a passo: criando um programa C++ padrão (C++)
Referência da linguagem C
Sistemas de build e projetos
Compatibilidade