Onde o Ubuntu armazena seus arquivos de biblioteca?

13

Eu quero adicionar minha própria biblioteca para usar na compilação c, mas não sei onde o ubuntu a armazena.

    
por david25 15.12.2010 / 10:41

5 respostas

8

Com base nos seus comentários à sua pergunta, acho que o que você está realmente perguntando é "Como faço para instalar uma biblioteca personalizada que escrevi e onde devo colocá-la?"

Em geral, as coisas criadas localmente para outras pessoas na máquina para o usuário são colocadas na árvore / usr / local. O arquivo de cabeçalho deve entrar em / usr / local / include. A biblioteca compilada deve entrar em / usr / local / lib. O arquivo .c não faz parte da biblioteca, é parte da fonte e não é algo normalmente não instalado para o uso do usuário final. Você precisará de acesso root para colocar arquivos em qualquer um desses locais.

Para construir a biblioteca, você precisará primeiro decidir se deseja uma biblioteca estática ou dinâmica (compartilhada). Mais informações sobre a criação de uma biblioteca compartilhada podem ser encontradas na seção 3.4, Criando uma biblioteca compartilhada em link . (Eles também têm recomendações sobre onde colocar coisas - a maioria dos desenvolvedores terá uma opinião ou três :-))

    
por jwernerny 15.12.2010 / 15:39
8

Dependendo da biblioteca, o ubuntu armazena suas bibliotecas principalmente em três locais

  1. / lib
  2. / usr / lib
  3. / usr / local / lib

A seguir está o Padrão de hierarquia do sistema de arquivos

/ lib

  

O diretório / lib contém os   imagens da biblioteca compartilhada necessárias para inicializar   o sistema e executar os comandos no   sistema de arquivos raiz, ie. por binários em   / bin e / sbin.

/ usr / lib

  

/ usr / lib inclui arquivos de objeto,   bibliotecas e binários internos que   não se destina a ser executado   diretamente por usuários ou scripts de shell.   [22]

     

As aplicações podem usar uma única   subdiretório em / usr / lib. Se um   aplicativo usa um subdiretório, tudo   dados dependentes da arquitetura   usado exclusivamente pelo aplicativo   deve ser colocado dentro desse   subdiretório.

/ usr / local / lib contém bibliotecas locais, ou seja, uma específica para este sistema, mas não consigo encontrar referências a / usr / local / lib no FHS, contém apenas explicações para / usr / local .

    
por binW 15.12.2010 / 10:49
2

O Ubuntu segue o Padrão de Hierarquia do Sistema de Arquivos ( link ), as bibliotecas de aplicativos regulares devem ser armazenadas em / usr / lib.

Por favor, note que desenvolver / gerenciar bibliotecas não é um assunto trivial, você deve ler uma documentação mais detalhada, aqui está um bom tutorial: link

    
por João Pinto 15.12.2010 / 10:49
0

Você deve dizer ao compilador, onde ele pode encontrar sua biblioteca. Assumindo, o caminho para sua biblioteca é "/path/to/lib/libfoo.a", você poderia compilar e vincular seu programa "hello.c" assim:

gcc -L/path/to/lib -lfoo hello.c

Isto não é específico para o Ubuntu, na verdade, todos os compiladores C que eu conheço suportam essas flags.

    
por Frank 15.12.2010 / 10:54
-2

No Ubuntu eles são encontrados em /usr/include .

    
por Evanson Wachira Wang'ombe 30.08.2013 / 17:02