Red Hat Training

A Red Hat training course is available for RHEL 8

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

Procedimento

  1. Mude para o diretório com as fontes da biblioteca.
  2. 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.

  3. 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.

  4. 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.

  5. 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