4.3. Criando bibliotecas dinâmicas com GCC
Bibliotecas dinamicamente ligadas (objetos compartilhados) permitem:
- conservação de recursos através da reutilização de códigos
- aumento da segurança, facilitando a atualização do código da biblioteca
Siga estes passos para construir e instalar uma biblioteca dinâmica a partir da fonte.
Pré-requisitos
- Você deve entender o mecanismo do soname.
- O GCC deve ser instalado no sistema.
- Você deve ter código fonte para uma biblioteca.
Procedimento
- Mude para o diretório com as fontes da biblioteca.
Compilar cada arquivo fonte em um arquivo objeto com a opção de código independente de posição
-fPIC
:$ gcc ... -c -fPIC some_file.c...
Os arquivos objeto têm os mesmos nomes dos arquivos de código fonte originais, mas sua extensão é
.o
.Vincular a biblioteca compartilhada a partir dos arquivos objeto:
$ gcc -shared -o libfoo.so.x.y -Wl,-soname,libfoo.so.x some_file.o ...
O número da versão maior é X e o número da versão menor é Y.
Copie o
libfoo.so.x.y
para um local apropriado, onde o linker dinâmico do sistema possa encontrá-lo. No Red Hat Enterprise Linux, o diretório para bibliotecas é/usr/lib64
:# cp libfoo.so.x.y /usr/lib64
Note que você precisa de permissões de root para manipular os arquivos neste diretório.
Criar a estrutura symlink para o mecanismo soname:
# ln -s libfoo.so.x.y libfoo.so.x # ln -s libfoo.so.x libfoo.so
Recursos adicionais
- O Projeto de Documentação Linux