Passo a passo: Criar e usar uma biblioteca estática

Este passo a passo mostra como criar uma biblioteca estática (arquivo.lib) para uso com aplicativos C++. A biblioteca estática é uma forma excelente de reutilizar códigos. Em vez de reimplementar as mesmas rotinas em todos os aplicativos que exigem a funcionalidade, escreva-as uma vez em uma biblioteca estática e, em seguida, referencie-a dos aplicativos. O código vinculado de uma biblioteca estática torna-se parte do seu aplicativo. Você não precisa instalar outro arquivo para usar o código.

Este passo a passo apresenta estas tarefas:

Pré-requisitos

Compreensão dos princípios básicos da linguagem C++.

Criar um projeto de biblioteca estática

As instruções de como criar o projeto variam dependendo da sua versão do Visual Studio. 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.

Para criar um projeto de biblioteca estática no Visual Studio:

  1. Na barra de menus, escolha Arquivo>Novo>Project para abrir a caixa de diálogo Criar um novo project.

  2. Na parte superior da caixa de diálogo, defina Linguagem como C++, Plataforma como Windows e Tipo de projeto como Biblioteca.

  3. Na lista filtrada de tipos de projeto, selecione Windows Assistente para Área de Trabalho e escolha Avançar.

  4. Na página Configurar seu novo projeto, insira MathLibrary na caixa Nome do projeto para especificar um nome para o projeto. Insira StaticMath na caixa Nome da solução. Escolha o botão Criar para abrir a caixa de diálogo Projeto da Área de Trabalho do Windows.

  5. Na caixa de diálogo Projeto da Área de Trabalho do Windows, no Tipo de aplicativo, selecione Biblioteca Estática (.lib).

  6. Em Opções adicionais, desmarque a caixa de seleção Cabeçalho pré-compilado se estiver selecionada. Selecione Projeto vazio.

  7. Clique em OK para criar o projeto.

Para criar um projeto de biblioteca estática no Visual Studio 2017:

  1. Na barra de menus, escolha Arquivo>Novo>Projeto.

  2. Na caixa de diálogo Novo Projeto, selecione Instalado>Visual C++>. No painel central, escolha Assistente do Windows Desktop.

  3. Especifique um nome para o projeto, como MathLibrary, na caixa Nome . Especifique um nome para a solução, como StaticMath, na caixa Nome da Solução . Escolha OK.

  4. Na caixa de diálogo Projeto da Área de Trabalho do Windows, no Tipo de aplicativo, selecione Biblioteca Estática (.lib).

  5. Em Opções Adicionais, desmarque a caixa de seleção Cabeçalho pré-compilado, se ela estiver selecionada. Selecione Projeto vazio.

  6. Clique em OK para criar o projeto.

Para criar um projeto de biblioteca estática no Visual Studio 2015:

  1. Na barra de menus, escolha Arquivo>Novo>Projeto.

  2. Na caixa de diálogo Novo Projeto, selecione Instalados>Modelos>Visual C++>Win32. No painel central, escolha Aplicativo de Console Win32.

  3. Especifique um nome para o projeto, como MathLibrary, na caixa Nome . Especifique um nome para a solução, como StaticMath, na caixa Nome da Solução . Escolha OK.

  4. No Assistente de Aplicativo Win32, selecione Avançar.

  5. Na página Configurações do aplicativo, em Tipo de aplicativo, selecioneBiblioteca estática. Em Opções adicionais, desmarque a caixa de seleção Cabeçalho pré-compilado. Selecione Concluir para criar o projeto.

Adicionar uma classe à biblioteca estática

Para adicionar uma classe à biblioteca estática:

  1. Crie um arquivo de cabeçalho para uma nova classe. Em Gerenciador de Soluções, clique com o botão direito do mouse em MathLibrary para abrir o menu de contexto do projeto. Selecione Adicionar>Novo Item.

  2. Na caixa de diálogo Adicionar Novo Item , selecione Visual C++>Code. No painel central, escolha Arquivo de Cabeçalho (.h). Especifique um nome para o arquivo de cabeçalho, como MathLibrary.h, e selecione Adicionar. Um arquivo de cabeçalho quase em branco é exibido.

  3. Adicione uma declaração para uma classe com o nome Arithmetic para executar operações matemáticas comuns, como adição, subtração, multiplicação e divisão. O código deve ser parecido com:

    // MathLibrary.h
    #pragma once
    
    namespace MathLibrary
    {
        class Arithmetic
        {
        public:
            // Returns a + b
            static double Add(double a, double b);
    
            // Returns a - b
            static double Subtract(double a, double b);
    
            // Returns a * b
            static double Multiply(double a, double b);
    
            // Returns a / b
            static double Divide(double a, double b);
        };
    }
    
  4. Para criar um arquivo de origem para a nova classe, abra o menu de contexto do projeto MathLibrary no Gerenciador de Soluções e escolha Adicionar>Novo Item.

  5. Na caixa de diálogo Adicionar Novo Item , no painel central, selecione Arquivo C++ (.cpp). Especifique um nome para o arquivo de origem, como MathLibrary.cpp. Em seguida, selecione Adicionar. Um arquivo de origem em branco é exibido.

  6. Use este arquivo de origem para implementar a funcionalidade da classe Arithmetic. O código deve ser parecido com:

    // MathLibrary.cpp
    // compile with: cl /c /EHsc MathLibrary.cpp
    // post-build command: lib MathLibrary.obj
    
    #include "MathLibrary.h"
    
    namespace MathLibrary
    {
        double Arithmetic::Add(double a, double b)
        {
            return a + b;
        }
    
        double Arithmetic::Subtract(double a, double b)
        {
            return a - b;
        }
    
        double Arithmetic::Multiply(double a, double b)
        {
            return a * b;
        }
    
        double Arithmetic::Divide(double a, double b)
        {
            return a / b;
        }
    }
    
  7. Para criar a biblioteca estática, selecione Criar>Compilar Solução na barra de menus. O build cria uma biblioteca estática, MathLibrary.lib, que outros programas podem usar.

    Observação

    Para criar na linha de comando do Visual Studio, você deve criar o programa em duas etapas.

    1. Execute cl /c /EHsc MathLibrary.cpp para compilar o código e criar um arquivo de objeto chamado MathLibrary.obj. O cl comando invoca o compilador, Cl.exee a opção /c especifica compilar sem vincular. Para obter mais informações, consulte /c (Compilar sem vinculação).
    2. Execute lib MathLibrary.obj para vincular o código e criar a biblioteca estática MathLibrary.lib. O lib comando invoca o Gerenciador de Bibliotecas, Lib.exe. Para obter mais informações, consulte Referência do LIB.

Criar um aplicativo de console C++ que faça referência à biblioteca estática

Para criar um aplicativo de console C++ que referencie a biblioteca estática no Visual Studio:

  1. Em Gerenciador de Soluções, clique com o botão direito do mouse no nó superior, solução 'StaticMath', para abrir o menu de contexto. Selecione Adicionar>Novo projeto para abrir a caixa de diálogo Adicionar um novo projeto.

  2. Na parte superior da caixa de diálogo, defina o filtro Tipo de projeto como Console.

  3. Na lista filtrada de tipos de projeto, escolha Aplicativo de Console e, em seguida, escolha Avançar. Na próxima página, insira MathClient como o nome do projeto.

  4. Escolha Criar para criar o projeto cliente.

    Depois que você cria um aplicativo de console, o sistema cria um programa vazio para você. O nome do arquivo de origem será o mesmo que você escolheu anteriormente. No exemplo, o nome usado é MathClient.cpp.

Para criar um aplicativo de console C++ que referencie a biblioteca estática no Visual Studio 2017:

  1. Em Gerenciador de Soluções, clique com o botão direito do mouse no nó superior, solução 'StaticMath', para abrir o menu de contexto. Selecione Adicionar>Novo projeto para abrir a caixa de diálogo Adicionar um novo projeto.

  2. Na caixa de diálogo Adicionar Novo Projeto, selecione Instalado>Visual C++>. No painel central, escolha Assistente do Windows Desktop.

  3. Especifique um nome para o projeto, por exemplo MathClient na caixa Nome. Clique no botão OK.

  4. Na caixa de diálogo Projeto da Área de Trabalho do Windows, no Tipo de aplicativo, selecione Aplicativo de Console (.exe).

  5. Em Opções Adicionais, desmarque a caixa de seleção de cabeçalho pré-compilado se estiver selecionada.

  6. Clique em OK para criar o projeto.

  7. Depois que você cria um aplicativo de console, o sistema cria um programa vazio para você. O nome do arquivo de origem será o mesmo que você escolheu anteriormente. No exemplo, o nome usado é MathClient.cpp.

Para criar um aplicativo de console C++ que faça referência à biblioteca estática no Visual Studio 2015:

  1. Em Gerenciador de Soluções, clique com o botão direito do mouse no nó superior, solução 'StaticMath', para abrir o menu de contexto. Selecione Adicionar>Novo projeto para abrir a caixa de diálogo Adicionar um novo projeto.

  2. Na caixa de diálogo Adicionar Novo Project, selecione Instalado>Visual C++>Win32. No painel central, escolha Aplicativo de Console Win32.

  3. Especifique um nome para o projeto, por exemplo MathClient na caixa Nome. Clique no botão OK.

  4. Na caixa de diálogo Assistente de Aplicativo Win32, clique no botão Avançar.

  5. Na página Configurações do Aplicativo, em Tipo de aplicativo, verifique se o Aplicativo de console foi selecionado. Em opções adicionais, desmarque o cabeçalho pré-compilado e selecione Vazio Project. Selecione Concluir para criar o projeto.

  6. Para adicionar um arquivo de origem ao projeto vazio, clique com o botão direito do mouse para abrir o menu de contexto do projeto MathClient em Gerenciador de Soluções e escolha Adicionar>Novo Item.

  7. Na caixa de diálogo Adicionar Novo Item , selecione Visual C++>Code. No painel central, selecione Arquivo do C++ (.cpp). Especifique um nome para o arquivo de origem, como MathClient.cpp e selecione o botão Adicionar. Um arquivo de origem em branco é exibido.

Usar a funcionalidade da biblioteca estática no aplicativo

Para usar a funcionalidade da biblioteca estática no aplicativo:

  1. Faça referência à biblioteca estática antes de usar as rotinas matemáticas nela. Abra o menu de contexto do projeto MathClient em Gerenciador de Soluções e escolha Adicionar>Referência.

  2. A caixa de diálogo Adicionar Referência lista as bibliotecas que você pode referenciar. A guia Projetos mostra os projetos da solução atual e as bibliotecas a que fazem referência. Abra a guia Projetos , selecione MathLibrary e selecione OK.

  3. Modifique o caminho dos diretórios incluídos para referenciar o arquivo de cabeçalho MathLibrary.h. Em Gerenciador de Soluções, clique com o botão direito do mouse em MathClient para abrir o menu de contexto. Escolha Propriedades para abrir a caixa de diálogo Páginas de Propriedades MathClient .

  4. Na caixa de diálogo Páginas de Propriedades do MathClient, defina o valor de Configuração como Todas as Configurações. Defina Plataforma como Todas as plataformas.

  5. Selecione a página de propriedades Propriedades da Configuração>C/C++>Geral. Na propriedade Incluir diretórios adicionais especifique o caminho do diretório MathLibrary ou procure o diretório.

    Para encontrar o caminho do diretório:

    1. Abra a lista suspensa de valor da propriedade Incluir diretórios adicionais e selecione Editar.

    2. Na caixa de diálogo Incluir Diretórios Adicionais , clique duas vezes na parte superior da caixa de texto. Em seguida, escolha o botão com três pontos (...) no final da linha.

    3. Na caixa de diálogo Selecionar Diretório , navegue até um nível e selecione o diretório MathLibrary . Em seguida, selecione o botão Selecionar pasta para salvar sua seleção.

    4. Na caixa de diálogo Incluir Diretórios Adicionais , escolha o botão OK .

    5. Na caixa de diálogo Páginas de Propriedades , escolha o botão OK para salvar suas alterações no projeto.

  6. Agora você pode usar a classe Arithmetic neste aplicativo incluindo o cabeçalho #include "MathLibrary.h" em seu código. Substitua os conteúdos de MathClient.cpp por este código:

    // MathClient.cpp
    // compile with: cl /EHsc MathClient.cpp /link MathLibrary.lib
    
    #include <iostream>
    #include "MathLibrary.h"
    
    int main()
    {
        double a = 7.4;
        int b = 99;
    
        std::cout << "a + b = " <<
            MathLibrary::Arithmetic::Add(a, b) << std::endl;
        std::cout << "a - b = " <<
            MathLibrary::Arithmetic::Subtract(a, b) << std::endl;
        std::cout << "a * b = " <<
            MathLibrary::Arithmetic::Multiply(a, b) << std::endl;
        std::cout << "a / b = " <<
            MathLibrary::Arithmetic::Divide(a, b) << std::endl;
    
        return 0;
    }
    
  7. Para criar o executável, escolha Compilar>Compilar Solução na barra de menus.

Executar o aplicativo

Para executar o aplicativo:

  1. Verifique se MathClientfoi selecionado como projeto padrão. Para selecioná-lo, clique com o botão direito do mouse em MathClient no Gerenciador de Soluções para abrir o menu de contexto e, em seguida, escolha Definir como Projeto de Inicialização.

  2. Na barra de menus, escolha Depurar>Iniciar sem Depuração para executar o projeto. O resultado deve ser semelhante a:

    a + b = 106.4
    a - b = -91.6
    a * b = 732.6
    a / b = 0.0747475
    

Confira também

Instruções passo a passo: criando e usando uma biblioteca de vínculo dinâmico (C++)