Compartilhar via


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 de área de trabalho completos do Windows e aplicativos móveis. 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 guia explica como criar um programa básico estilo Hello, World em C usando um editor de texto e, em seguida, compilá-lo 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

  • Visual Studio ou as ferramentas de build para Visual Studio e a carga de trabalho Desenvolvimento para desktop 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 do Visual Studio instalam apenas o conjunto de ferramentas de linha de comando, os compiladores, as ferramentas e as bibliotecas necessárias para criar programas 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 de 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.
  • Compilador MSVC

    • 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 seletor de versão localizado na parte superior do sumário 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 o Microsoft Visual C++ Build Tools 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 procurar pelo prompt de comando do desenvolvedor e escolher aquele que corresponda à versão do Visual Studio instalada. 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 todas as atualizações instaladas. Se a saída anterior for semelhante ao que você vê, você estará pronto para criar programas C ou C++ na linha de comando.

Observação

Se você receber um erro como 'cl' não for reconhecido como um comando interno ou externo, programa operável ou arquivo em lote, erro C1034 ou erro LNK1104 ao executar o cl comando, então 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 encontrar o atalho do prompt de comando do desenvolvedor ou se receber uma mensagem de erro ao inserir cl, a instalação do Visual Studio poderá ter um 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 compilação na página de 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, talvez seja necessário clicar com o botão direito do mouse para abrir o menu de atalho do atalho do prompt de comando do desenvolvedor e, em seguida, escolher Executar como Administrador para compilar e executar com êxito 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 contém 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 menu do Bloco de Notas, selecione Arquivo>Salvar para salvar hello.c em seu 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.

    Você pode ver o nome do programa executável, hello.exenas linhas de 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 for reconhecido como um comando interno ou externo, programa operável ou arquivo em lote, erro C1034 ou erro LNK1104, o prompt de comando do desenvolvedor não será 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.

Etapas avançadas

Este exemplo hello, world é tão básico quanto um programa C pode obter. Os programas do mundo real têm arquivos de cabeçalho e mais arquivos de origem, fazem a ligação com 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.exetem muitas outras 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 MSVC usa uma regra básica para determinar qual idioma usar ao compilar seu 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 compila e é executado conforme o esperado. O compilador fornece suporte opcional para as alterações no ISO C11 e C17. Para compilar com suporte a C11 e C17, use o sinalizador /std:c11 do compilador ou /std:c17. O suporte a C11 e 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.

Veja também