4.4. Criação de bibliotecas estáticas com GCC e ar
A criação de bibliotecas para ligação estática é possível através da conversão de arquivos de objetos em um tipo especial de arquivo.
A Red Hat desencoraja o uso de ligação estática por razões de segurança. Use links estáticos somente quando necessário, especialmente contra bibliotecas fornecidas pela Red Hat. Veja Seção 3.2, “Ligação estática e dinâmica” para mais detalhes.
Pré-requisitos
- GCC e binutils devem ser instalados no sistema.
- Você deve compreender a ligação estática e dinâmica.
- Arquivo(s) fonte(s) com funções a serem compartilhadas como uma biblioteca estão disponíveis.
Procedimento
Criar arquivos de objetos intermediários com GCC.
$ gcc -c source_file.c...
Anexar mais arquivos de origem, se necessário. Os arquivos objeto resultantes compartilham o nome do arquivo, mas use a extensão
.o
.Transforme os arquivos objeto em uma biblioteca estática (arquivo) usando a ferramenta
ar
do pacotebinutils
.$ ar rcs libfoo.a source_file.o...
O arquivo
libfoo.a
é criado.Use o comando
nm
para inspecionar o arquivo resultante:$nm libfoo.a
- Copie o arquivo estático da biblioteca para o diretório apropriado.
Ao vincular-se contra a biblioteca, o GCC reconhecerá automaticamente a partir da extensão do nome do arquivo
.a
que a biblioteca é um arquivo para vínculo estático.$ gcc ... -lfoo...
Recursos adicionais
Página do manual Linux para ar(1):
$ homem ar