Como Escrever e Usar Bibliotecas em C++
: Um Guia Passo a Passo
Criar e usar bibliotecas em C++ é uma habilidade essencial para desenvolvedores que desejam construir um código modular e reutilizável. Este post do blog irá guiá-lo pelo processo de escrever, compilar e integrar bibliotecas C++, com foco específico em bibliotecas compartilhadas para ambientes Linux e Windows. Continue lendo para descobrir exemplos simples e explicações claras que tornarão esse tópico fácil de entender.
Compreendendo as Bibliotecas em C++
O que são Bibliotecas em C++?
Bibliotecas em C++ são coleções de código pré-compilado que você pode incluir em seus projetos para reutilizar funcionalidades sem reescrever o código. Existem dois tipos principais de bibliotecas em C++:
- Bibliotecas Estáticas: Essas são vinculadas em tempo de compilação e se tornam parte do executável. Elas normalmente têm a extensão
.a
no Linux e.lib
no Windows. - Bibliotecas Dinâmicas: Essas são vinculadas em tempo de execução. No Linux, têm a extensão
.so
, enquanto no Windows, os arquivos equivalentes são.dll
.
Neste post, focaremos na criação e uso de bibliotecas dinâmicas.
Criando uma Biblioteca Dinâmica em C++
Passo 1: Escreva o Código da Sua Biblioteca
Vamos começar com um exemplo simples. Queremos criar uma biblioteca contendo uma função que imprimirá uma mensagem.
-
Crie o arquivo de cabeçalho (
t.h
):void f();
-
Crie o arquivo fonte (
t.cc
):#include <iostream> #include "t.h" void f() { std::cout << "OH HAI. EU SOU F." << std::endl; }
Passo 2: Compile o Código em uma Biblioteca Compartilhada
Agora que temos nosso código de biblioteca pronto, vamos compilá-lo em uma biblioteca compartilhada. Veja como fazer isso:
-
Compile o código fonte em código objeto:
g++ -fpic -c t.cc # Produz t.o
-
Crie a biblioteca compartilhada:
g++ -shared -o t.so t.o # Produz t.so
Passo 3: Use a Biblioteca em Seu Programa Principal
Agora, vamos criar uma aplicação principal que usará a biblioteca que acabamos de criar.
- Crie o arquivo principal (
r.cc
):#include "t.h" int main() { f(); // Chama a função da biblioteca return 0; }
Passo 4: Compile e Vincule Seu Aplicativo com a Biblioteca
Para compilar o programa principal junto com a biblioteca compartilhada, use o seguinte comando:
g++ r.cc t.so -o mainApp
Passo 5: Configure o Caminho da Biblioteca (Apenas Linux)
No Linux, certifique-se de que o programa possa encontrar a biblioteca compartilhada em tempo de execução. Você pode fazer isso configurando o LD_LIBRARY_PATH
para incluir o diretório atual:
export LD_LIBRARY_PATH="."
Você não precisa executar essa etapa se instalar a biblioteca compartilhada em um diretório de biblioteca global.
Etapa Final: Execute Seu Aplicativo
Após a compilação, você pode executar seu aplicativo:
./mainApp
Você deverá ver a saída:
OH HAI. EU SOU F.
Resumo das Etapas Chave
- Crie um arquivo de cabeçalho para suas funções de biblioteca.
- Escreva a implementação em um arquivo fonte.
- Compile o arquivo fonte em um arquivo objeto.
- Crie uma biblioteca compartilhada a partir do arquivo objeto.
- Escreva um aplicativo principal e vincule-o à biblioteca.
- Assegure-se de que seu aplicativo possa encontrar a biblioteca em tempo de execução.
Seguindo essas etapas, você pode criar e utilizar suas próprias bibliotecas em C++, abrindo caminho para um código organizado e reutilizável. Essa habilidade é inestimável para qualquer desenvolvedor que deseja aprimorar suas práticas de programação em C++.
Agora você está preparado para explorar e criar suas próprias bibliotecas dinâmicas em C++. Boa codificação!