c libraries how install
Este tutorial de bibliotecas C ++ explicará o que são bibliotecas em C ++, seus tipos, juntamente com a instalação e o uso de uma biblioteca padrão C ++:
Uma biblioteca pode ser definida como um pacote de código ou funções reutilizáveis. Vários aplicativos podem usar a mesma biblioteca repetidamente. Ao ter bibliotecas, alcançamos a reutilização, ou seja, um dos princípios da Programação Orientada a Objetos.
Por exemplo, funções matemáticas como sin, cos, tan, abs, etc. podem ser transformadas em uma biblioteca. Fazendo isso, não temos que escrever essas funções repetidamente para cada aplicativo. Podemos apenas fazer referência à biblioteca e reutilizar o código em nossos aplicativos.
=> Visite aqui para aprender C ++ do zero.
O que você aprenderá:
Bibliotecas C ++
Uma biblioteca C ++ geralmente consiste em:
Um arquivo de cabeçalho: Isso define a funcionalidade que a biblioteca está oferecendo.
Um binário pré-compilado: Este arquivo contém a implementação real da funcionalidade. Essa implementação é pré-compilada em uma linguagem de máquina.
As bibliotecas são pré-compiladas, pois não há razão para recompilar as bibliotecas, pois elas dificilmente mudam. Em segundo lugar, como as bibliotecas pré-compiladas estão em um formato de linguagem de máquina, elas são protegidas, pois ninguém pode acessá-las diretamente. Assim, as bibliotecas estão protegidas.
Em C ++, temos dois tipos de bibliotecas:
- Bibliotecas estáticas
- Bibliotecas dinâmicas
Bibliotecas estáticas
Bibliotecas estáticas também são chamadas de Arquivos. Uma biblioteca estática é uma biblioteca que se torna parte do executável que faz referência a ela. Portanto, quando desenvolvemos um aplicativo e fazemos referência a uma biblioteca estática nele, o conteúdo da biblioteca estática é substituído no aplicativo.
As bibliotecas estáticas no Windows geralmente têm uma extensão “.lib”, enquanto as do Linux têm a extensão “.a” (ou arquivo).
o que a fase de verificação no ciclo de vida do software realiza?
Uma vantagem de ter uma biblioteca estática de referência de programa é que não temos que distribuir a biblioteca estática junto com o executável. Isso ocorre porque o conteúdo da biblioteca estática faz parte dos aplicativos e não há necessidade de fornecê-lo separadamente.
Essa vantagem específica resulta em uma desvantagem, pois o executável pode se tornar volumoso e muito espaço é desperdiçado, pois a biblioteca é parte do executável.
Outra desvantagem de ter uma biblioteca estática é que, se a biblioteca estática for alterada, o executável que faz referência a ela também precisa ser atualizado.
Bibliotecas Dinâmicas
A biblioteca dinâmica também é conhecida como “Biblioteca compartilhada”. No Windows, a biblioteca dinâmica possui a extensão “.dll” (biblioteca vinculada dinamicamente). No Linux, a biblioteca dinâmica possui a extensão “.so” (objeto compartilhado).
Uma biblioteca dinâmica é uma biblioteca que consiste em rotinas que são carregadas no aplicativo em tempo de execução. Quando um aplicativo faz referência a uma biblioteca dinâmica, a biblioteca não se torna parte do aplicativo, mas permanece como uma unidade separada.
A biblioteca dinâmica tem a vantagem de que uma cópia da biblioteca pode ser compartilhada por vários aplicativos, economizando espaço. Outra vantagem é que, como a biblioteca dinâmica é uma unidade separada, o executável do aplicativo não muda quando a biblioteca dinâmica muda.
A única desvantagem de uma biblioteca dinâmica é que ela requer um programa separado para carregar e fazer referência à biblioteca, o que pode ser complicado. Para resolver este problema, usamos a rotina “biblioteca de importação”.
A biblioteca de importação é um mecanismo que carrega e usa uma biblioteca dinâmica automaticamente no programa. No Windows, a biblioteca de importação mantém uma pequena biblioteca estática (.lib) com o mesmo nome do arquivo .dll e é vinculada ao programa no momento da compilação.
Feito isso, a biblioteca dinâmica é usada como se fosse uma biblioteca estática. No sistema operacional Linux, a biblioteca dinâmica ou o arquivo de objeto compartilhado (.so) atua como uma biblioteca de importação e também como uma biblioteca dinâmica. A maioria dos linkers no sistema operacional Linux são capazes de construir uma biblioteca de importação para uma biblioteca dinâmica.
Como instalar e usar bibliotecas C ++
Vamos ver algumas das etapas que precisamos seguir para instalar essas bibliotecas e usá-las em nosso aplicativo.
# 1) Adquirindo a Biblioteca
Para usar a biblioteca em nosso aplicativo, primeiro precisamos adquirir a biblioteca. A biblioteca pode ser pré-compilada - nesse caso, basta fazer o download da biblioteca para o sistema operacional. Se a biblioteca não for pré-compilada, precisamos baixar o código-fonte e compilá-lo em nossa máquina.
No Windows, as bibliotecas geralmente têm extensão .zip, enquanto no sistema operacional Linux o pacote da biblioteca é distribuído como ‘.RPM’.
# 2) Instale a Biblioteca
A próxima etapa depois de obter a biblioteca é instalá-la. A instalação no Windows é tão simples quanto descompactar o conteúdo da biblioteca em uma pasta. No Linux, podemos invocar o gerenciador de pacotes para instalar a biblioteca.
# 3) Incluir o caminho da biblioteca para o compilador
Precisamos definir o caminho da biblioteca para que o compilador saiba onde procurar os arquivos da biblioteca. Pode ser o diretório ‘include’ no Windows ou ‘/ usr / include’ no Linux.
# 4) Vincule o caminho da Biblioteca
Esta etapa é executada para que o vinculador saiba o caminho exato das bibliotecas que ele deve vincular durante o processo de vinculação. Normalmente, existe a pasta ‘/ lib’ no Windows ou a pasta ‘/ usr / lib’ no Linux que contém todas as bibliotecas.
Depois que a biblioteca é instalada, o compilador e o vinculador sabem o caminho da biblioteca a ser usado e a biblioteca está pronta para uso. Em nosso programa, podemos nos referir à funcionalidade da biblioteca e, como incluímos os arquivos de cabeçalho em nosso programa, o compilador será capaz de compilar a funcionalidade.
Como os programadores usam principalmente IDEs para desenvolvimento, especificamos o caminho da biblioteca no próprio IDE.
Cabeçalhos / bibliotecas padrão em C ++
Vamos discutir alguns dos cabeçalhos ou bibliotecas padrão que a linguagem C ++ usa. Já discutimos esses cabeçalhos em seus respectivos tópicos em nossos tutoriais C ++.
Biblioteca C Standard
O padrão ANSI C especifica o Biblioteca padrão C ou libc que atua como a biblioteca padrão para a linguagem de programação C. C ++ inclui cada cabeçalho da biblioteca padrão C com um nome diferente, adicionando 'c' no início e removendo '.h' no final. Assim, o cabeçalho xxx.h em C se tornará 'cxxx' no padrão C ++.
A biblioteca padrão C fornece a funcionalidade relacionada a macros, manipulação de strings, definições de tipo de cálculos matemáticos, processamento de entrada / saída, gerenciamento de memória, etc., entre outros.
Verificar aqui para obter mais informações sobre a Biblioteca C Standard.
em geral
A biblioteca C ++ geral inclui os seguintes cabeçalhos, conforme mostrado abaixo.
Nome do Cabeçalho | Descrição |
---|---|
Define a funcionalidade da tupla. Disponível a partir do C ++ 11. | |
Algoritmos usados por muitos contêineres são definidos neste cabeçalho. | |
Inclui elementos de tempo como std :: chrono :: time_point, std :: chrono :: duration e clocks. | |
Este cabeçalho fornece objetos de funções a serem usados com algoritmos gerais. | |
Contém classes e modelos para iteradores. | |
Define a funcionalidade de gerenciamento de memória em C ++. | |
Define as classes de exceção padrão incluindo std :: logic_error e std :: runtime_error, ambos derivados de std :: exception. | |
Classes de modelo como std :: pair etc. ou namespaces como std :: rel_ops são definidos neste cabeçalho. |
Streams e entrada / saída
Nome do Cabeçalho | Descrição |
---|---|
Contém a funcionalidade da classe de modelo std :: ostream e outras classes de suporte para saída. | |
Fornece funcionalidade para entrada-saída baseada em arquivo. | |
Contém funcionalidade para formatação de saída como precisão, base etc. | |
Contém funcionalidade básica para operações iostream. | |
Fornece declarações de encaminhamento de vários modelos de classe relacionados a E / S. | |
Fornece fundamentos de entrada e saída C ++. | |
Contém funcionalidade da classe de modelo std :: istream e outras classes de suporte para entrada. | |
Define a classe de modelo std :: stringstream e outras classes de suporte usadas para manipulação de string. | |
Contém funcionalidade para leitura e gravação de / para certos tipos de sequências de caracteres, como arquivos externos ou strings. |
Suporte de linguas
Nome-do-Cabeçalho | Descrição |
---|---|
Implementa a funcionalidade para std :: queue, uma fila de terminação única, e std :: priority_queue, uma fila de prioridade. | |
Este cabeçalho contém vários tipos e funções para tratamento de exceção, incluindo a classe base para todas as exceções, std :: exception. | |
Este cabeçalho contém a classe de modelo std :: numeric_limits usada para descrever propriedades numéricas fundamentais | |
Contém os operadores new e delete e outras funções relacionadas aos fundamentos do gerenciamento de memória C ++. | |
Fornece recursos para trabalhar com informações de tipo de tempo de execução C ++. |
Cordas
Nome do Cabeçalho | Descrição |
---|---|
Este cabeçalho contém as classes e modelos de string padrão em C ++. | |
Isso é novo no C ++ 11. Fornece utilitários para strings de correspondência de padrões usando expressões regulares. |
Localização
Nome-do-Cabeçalho | Descrição |
---|---|
Este cabeçalho possui funcionalidade local. Ele define classes e declara funções que encapsulam e manipulam as informações específicas de um local. | |
Contém facetas de conversão de código para várias codificações de caracteres. |
Recipientes
Nome-do-Cabeçalho | Descrição |
---|---|
Contém funcionalidade para std :: array, um contêiner para um array de tamanho fixo. Nova adição em C ++ 11 e TR1. | |
Classe de contêiner especializada std :: bitset, uma matriz de bits. | |
Contém funcionalidade para std :: deque, uma fila dupla. | |
Cabeçalho para std :: forward_list, uma lista vinculada individualmente. Nova adição em C ++ 11 e TR1. | |
Contém funcionalidade para std :: list, uma lista duplamente vinculada. | |
Contém funcionalidades para std :: map e std :: multimap, array associativo classificado e multimap. | |
Possui o cabeçalho para std :: set e std :: multiset, contêineres associativos classificados ou conjuntos. | |
Fornece a classe de adaptador de contêiner std :: stack, uma pilha. | |
Este cabeçalho contém std :: unordered_map e std :: unordered_multimap, funcionalidade de tabelas de hash. Novo em C ++ 11 e TR1. | |
Fornece funcionalidade para std :: unordered_set e std :: unordered_multiset. Novo em C ++ 11 e TR1. | |
Fornece funcionalidade para std :: vector, uma matriz dinâmica. |
Biblioteca de apoio a Threads
Nome do Cabeçalho | Descrição |
---|---|
Uma nova classe e namespace para trabalhar com threads de C ++ 11 em diante. | |
A nova adição ao C ++ 11 em diante. Ele fornece mutexes, bloqueios, chamada uma vez, etc., que são todos os mecanismos de exclusão mútua. | |
Contém funcionalidade para variáveis de condição que fornecem primitivas de sincronização usadas para bloquear um encadeamento até que seja notificado por algum outro encadeamento de que alguma condição é atendida ou até que um horário do sistema seja atingido. A nova adição do C ++ 11 em diante. | |
Este cabeçalho possui os componentes que um programa C ++ pode usar para recuperar em um thread e o resultado (valor ou exceção) de uma função que foi executada no mesmo thread ou em outro thread. |
Biblioteca Numérica
Nome do Cabeçalho | Descrição |
---|---|
O cabeçalho descreve várias funções para representar e manipular números complexos. Ele também tem um modelo de classe para números complexos | |
Funcionalidade para gerar números (pseudo-) aleatórios | |
Este cabeçalho contém - cinco modelos de classe (valarray, slice_array, gslice_array, mask_array e indirect_array), - duas classes (fatia e gslice), - Uma série de modelos de função relacionados para representar e manipular matrizes de valores. | |
Contém operações numéricas gerais. |
Conclusão
Discutimos as bibliotecas C ++ em detalhes junto com seus tipos e as etapas para instalar e configurar a biblioteca.
Ficamos sabendo que a biblioteca C ++ padrão contém vários cabeçalhos que fornecem funcionalidades diferentes. Podemos usar esses cabeçalhos de biblioteca padrão para desenvolver uma variedade de aplicativos em C ++.
=> Verifique TODOS os tutoriais em C ++ aqui.
Leitura recomendada
- Funções de biblioteca em C ++
- Biblioteca de modelos padrão (STL): uma breve introdução
- Uma visão geral completa do C ++
- Mais de 70 MELHORES tutoriais em C ++ para aprender programação C ++ GRATUITAMENTE
- Formatando E / S: printf, sprintf, scanf Funções em C ++
- Operações básicas de entrada / saída em C ++
- Funções de string em C ++: getline, substring, comprimento de string e mais