Eu quero adicionar minha própria biblioteca para usar na compilação c, mas realmente não sei onde o ubuntu a armazena.
Eu quero adicionar minha própria biblioteca para usar na compilação c, mas realmente não sei onde o ubuntu a armazena.
Respostas:
Com base nos seus comentários à sua pergunta, acho que você está realmente perguntando: "Como instalo 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 ir para / usr / local / include. A biblioteca compilada deve entrar em / usr / local / lib. O arquivo .c não faz parte da biblioteca, faz 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 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 http://www.linux.org/docs/ldp/howto/Program-Library-HOWTO/shared-libraries.html . (Eles também têm recomendações sobre onde colocar as coisas - a maioria dos desenvolvedores tem uma opinião ou três :-))
Dependendo da biblioteca, o ubuntu armazena suas bibliotecas principalmente em três locais
A seguir, é apresentado o padrão de hierarquia do sistema de arquivos
/ lib
O diretório / lib contém as 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 objetos, bibliotecas e binários internos que não devem ser executados diretamente por usuários ou scripts de shell. [22]
Os aplicativos podem usar um único subdiretório em / usr / lib. Se um aplicativo usar um subdiretório, todos os dados dependentes da arquitetura usados exclusivamente pelo aplicativo deverão ser colocados 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, apenas contém explicações para / usr / local.
O Ubuntu segue o Filesystem Hierarchy Standard ( http://en.wikipedia.org/wiki/Filesystem_Hierarchy_Standard ), as bibliotecas regulares de aplicativos devem ser armazenadas em / usr / lib.
Observe que o desenvolvimento / gerenciamento de bibliotecas não é um assunto trivial; você deve ler uma documentação mais detalhada; aqui está um bom tutorial: http://www.yolinux.com/TUTORIALS/LibraryArchives-StaticAndDynamic.html
Você deve informar ao compilador onde ele pode encontrar sua biblioteca. Supondo que o caminho para sua biblioteca é "/path/to/lib/libfoo.a", você pode compilar e vincular seu programa "hello.c" assim:
gcc -L/path/to/lib -lfoo hello.c
Isso não é específico para o Ubuntu, na verdade todos os compiladores C que conheço suportam esses sinalizadores.
No Ubuntu eles são encontrados em /usr/include
.
/usr/include
. Os binários reais de uma biblioteca não são armazenados lá. Os cabeçalhos podem ser considerados parte de uma biblioteca, mas precisam ser instalados separadamente e são usados para compilar programas que usam uma biblioteca. Após a compilação de um programa que usa uma biblioteca, ele não precisa mais nem usa os arquivos de cabeçalho.