Instruções passo a passo: compilando um programa do C++ nativo na linha de comando

O Visual Studio inclui um compilador do C e C++ para linha de comando. Você pode usá-lo para criar tudo, desde aplicativos de console básicos até aplicativos da Plataforma Universal do Windows, aplicativos da área de trabalho, drivers de dispositivo e componentes do .NET.

Neste passo a passo, você cria um programa básico do C++ no estilo "Olá, Mundo" usando um editor de texto e, em seguida, o compila 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++.

Neste passo a passo, você pode usar seu próprio programa do C++ ao invés de digitar aquele que será mostrado. Ou você pode usar um exemplo de código do C++ de outro artigo de ajuda.

Pré-requisitos

Para realizar este passo a passo, você deve ter instalado o Visual Studio e a carga de trabalho opcional Desenvolvimento para a área de trabalho com C++ ou as Ferramentas de Build de linha de comando para Visual Studio.

O Visual Studio é um IDE (ambiente de desenvolvimento integrado). Ele dá suporte a um editor completo, gerenciadores de recursos, depuradores e compiladores para muitas linguagens e plataformas. As versões disponíveis incluem a edição Visual Studio Community gratuita e todas dão suporte ao desenvolvimento em C e C++. Para saber mais sobre como baixar e instalar o Visual Studio, confira Instalar o suporte ao C++ no Visual Studio.

As Ferramentas de Build para Visual Studio instalam apenas os compiladores de linha de comando, as ferramentas e as bibliotecas necessárias para criar 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 as ferramentas de linha de comando, procure Ferramentas de Build para Visual Studio na página Downloads do Visual Studio.

Para criar um programa em C ou C++ na linha de comando, verifique se as ferramentas estão instaladas e se você consegue acessá-las na linha de comando. O Visual C++ 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 Visual C++ em uma janela de prompt de comando comum sem fazer alguma preparação. Entretanto, o Visual C++ instala atalhos para você iniciar um prompt de comando do desenvolvedor que tem o ambiente configurado para builds de linha de comando. Apesar disso, os nomes dos atalhos de prompt de comando do desenvolvedor e o local em que eles estão localizados são diferentes em quase todas as versões do Visual C++ e em versões diferentes do Windows. Sua primeira tarefa do passo a passo é encontrar o atalho correto 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. Você mesmo deverá definir esses valores de ambiente se for usar uma janela regular do Prompt de Comando. Para obter mais informações, confira Usar o conjunto de ferramentas do MSVC na linha de comando. Recomendamos que você use um atalho de prompt de comando do desenvolvedor em vez de criar o seu próprio.

Abra um prompt de comando para desenvolvedor

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

    Se você instalou o Ferramentas de Build do Microsoft Visual C++ 2015 no Windows 10 ou posterior, abra o menu Iniciar e escolha Todos os aplicativos. 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.

    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.

  2. Em seguida, verifique se o prompt de comando do desenvolvedor do Visual C++ está configurado corretamente. Na janela do prompt de comando, insira cl e verifique se a saída é semelhante a 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... ]
    

    Poderá haver diferenças no diretório atual ou nos números de versão. Esses valores dependem da versão do Visual C++ e das 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 lote", erro C1034 ou erro LNK1104 ao executar o comando cl, então você não está usando um prompt de comando do desenvolvedor ou algo está errado com a instalação do Visual C++. Você deve corrigir esse problema para continuar.

    Se você não conseguir encontrar o atalho do prompt de comando do desenvolvedor ou se receber uma mensagem de erro ao digitar cl, a instalação do Visual C++ poderá estar com algum problema. Tente reinstalar o componente do Visual C++ no Visual Studio ou reinstale as Ferramentas de Build do Microsoft Visual C++. Não avance para a próxima seção até que o comando cl funcione. Para obter mais informações sobre como instalar e solucionar problemas do Visual C++, confira Instalar o Visual Studio.

    Observação

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

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

  1. Na janela do prompt de comando do desenvolvedor, insira md c:\hello para criar um diretório e, em seguida, insira cd c:\hello para acessar esse diretório. Esse diretório é o local em que o arquivo de origem e o programa compilado são criados.

  2. Insira notepad hello.cpp na janela do prompt de comando.

    Escolha Sim quando o Bloco de notas solicitar a criação de um arquivo. Esta etapa abre uma janela do Bloco de notas em branco, pronta para inserir seu código em um arquivo chamado hello.cpp.

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

    #include <iostream>
    using namespace std;
    int main()
    {
        cout << "Hello, world, from Visual C++!" << endl;
    }
    

    Esse código é um programa simples que escreverá uma linha de texto na tela e, em seguida, sairá. Para minimizar os erros, copie esse código e cole-o no Bloco de notas.

  4. Salve o trabalho. No Bloco de notas, no menu Arquivo, escolha Salvar.

    Parabéns, você criou um arquivo de origem do C++, o hello.cpp, que está pronto para compilar.

  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.cpp 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
    
    05/24/2016  05:36 PM    <DIR>          .
    05/24/2016  05:36 PM    <DIR>          ..
    05/24/2016  05:37 PM               115 hello.cpp
                   1 File(s)            115 bytes
                   2 Dir(s)  571,343,446,016 bytes free
    
    

    As datas e outros detalhes serão diferentes em seu computador.

    Observação

    Se você não vir o arquivo do código-fonte, hello.cpp, verifique se o diretório de trabalho atual no prompt de comando é o diretório C:\hello que você criou. Confirme também se esse é o diretório em que você salvou o arquivo de origem. E confirme se você salvou o código-fonte com uma extensão de nome de arquivo .cpp e não uma extensão .txt. Seu arquivo de origem é salvo no diretório atual como um arquivo .cpp automaticamente se você abrir o Bloco de notas no prompt de comando usando o comando notepad hello.cpp. O comportamento do Bloco de notas é diferente se você abri-lo de outra maneira: por padrão, o Bloco de notas acrescenta uma extensão .txt a novos arquivos quando você os salva. Ele também salva arquivos no diretório Documentos como padrão. Para salvar o arquivo com uma extensão .cpp no Bloco de notas, escolha Arquivo>Salvar Como. Na caixa de diálogo Salvar Como, navegue até sua pasta C:\hello no controle de exibição de árvore do diretório. Em seguida, use o controle suspenso Salvar como tipo para selecionar Todos os Arquivos (*.*). Insira hello.cpp no controle de edição do Nome do arquivo e escolha Salvar para salvar o arquivo.

  6. No prompt de comando do desenvolvedor, insira cl /EHsc hello.cpp para compilar seu programa.

    O compilador cl.exe gera um arquivo .obj que contém o código compilado e, em seguida, executa o vinculador para criar um programa executável chamado hello.exe. Esse nome é exibido nas linhas das informações de saída exibidas pelo compilador. A saída do compilador deverá ter uma aparência semelhante a esta:

    c:\hello>cl /EHsc hello.cpp
    Microsoft (R) C/C++ Optimizing Compiler Version 19.10.25017 for x86
    Copyright (C) Microsoft Corporation.  All rights reserved.
    
    hello.cpp
    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.

    Observação

    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 para procurar o número do erro.

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

    O programa exibe este texto e é fechado:

    Hello, world, from Visual C++!
    

    Parabéns, você compilou e executou um programa do C++ usando as ferramentas de linha de comando.

Próximas etapas

Este exemplo de "Olá, Mundo" é tão simples quanto um programa C++ pode ser. Os programas do mundo real geralmente têm arquivos de cabeçalho, mais arquivos de origem e link para bibliotecas.

Você pode usar as etapas neste passo a passo para criar seu próprio código em C++ em vez de digitar o código de exemplo mostrado. Essas etapas também permitem criar muitos programas de exemplo de código do C++ que você encontra em outros lugares. Você pode colocar seu código-fonte e criar aplicativos em qualquer diretório gravável. Por padrão, o IDE do Visual Studio cria projetos em sua pasta de usuário, em uma subpasta source\repos. Versões mais antigas podem colocar projetos em uma pasta Documentos\Visual Studio <versão>\Projetos.

Para compilar um programa que tenha outros arquivos de código-fonte, insira todos eles na linha de comando, como:

cl /EHsc file1.cpp file2.cpp file3.cpp

A opção de linha de comando /EHsc instrui o compilador a habilitar o comportamento padrão de tratamento de exceções do C++. Sem isso, as exceções geradas podem resultar em objetos não destruídos e vazamentos de recursos. Para obter mais informações, consulte /EH (modelo de tratamento de exceção).

Quando você fornece arquivos de origem adicionais, o compilador usa o primeiro arquivo de entrada para criar o nome do programa. Nesse caso, ele gera um programa chamado file1.exe. Para alterar o nome para program1.exe, adicione uma opção de vinculador /out:

cl /EHsc file1.cpp file2.cpp file3.cpp /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 /EHsc file1.cpp file2.cpp file3.cpp /link /out:program1.exe

O compilador, cl.exe, tem muitas outras opções. Você pode aplicá-las para compilar, 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, ou CMake, para configurar e criar projetos mais complexos na linha de comando. Para obter mais informações sobre como usar essas ferramentas, confira Referência do NMAKE, MSBuild e Projetos do CMake no Visual Studio.

As linguagens C e C++ são semelhantes, mas não são as mesmas. O compilador do MSVC usa uma regra simples para determinar qual linguagem usar ao compilar seu código. Por padrão, o compilador do MSVC trata os arquivos que terminam em .c como código-fonte do C e os arquivos que terminam em .cpp, como código-fonte do 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 /TP.

O compilador do MSVC inclui uma CRT (Biblioteca de Runtime do C) em conformidade com o padrão ISO C99, com pequenas exceções. O código portátil geralmente é compilado e executado conforme o esperado. Determinadas funções obsoletas da biblioteca e vários nomes de função POSIX estão preteridas pelo compilador do 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

Referência da linguagem C++
Sistemas de build e projetos
Opções do compilador MSVC