Dove Ubuntu memorizza i suoi file di libreria?


17

Voglio aggiungere la mia libreria da usare nella compilazione in c, ma non so davvero dove si trova Ubuntu.


5
Memorizza in / usr / lib & / usr / include
karthick87 il

ho trovato la mia libreria in / usr / include come devo andare con inserirli? dovrei solo mettere un file header e un file ac vicino ad esso o dovrei scrivere l'intestazione e la funzione insieme in un file .h?
david25,

3
Le librerie e le intestazioni sono cose diverse, / usr / include NON contiene librerie, contiene intestazioni che sono definizioni di funzioni / oggetti disponibili dalle librerie. La domanda dovrebbe essere migliorata, è difficile capire cosa stai cercando di ottenere.
João Pinto,

Risposte:


11

Sulla base dei tuoi commenti alla tua domanda, penso che ciò che stai veramente chiedendo sia "Come posso installare una libreria personalizzata che ho scritto e dove devo metterla?"

In generale, le cose costruite localmente per gli altri sulla macchina per l'utente vengono inserite nell'albero / usr / local. Il file di intestazione dovrebbe andare in / usr / local / include. La libreria compilata dovrebbe andare in / usr / local / lib. Il file .c non fa parte della libreria, fa parte del sorgente e non è qualcosa normalmente non installato per l'uso dell'utente finale. Sarà necessario l'accesso root per inserire i file in una di queste posizioni.

Per costruire la libreria, dovrai prima costruire se vuoi una libreria statica o dinamica (condivisa). Maggiori informazioni sulla creazione di una libreria condivisa sono disponibili nella sezione 3.4, Creazione di una libreria condivisa su http://www.linux.org/docs/ldp/howto/Program-Library-HOWTO/shared-libraries.html . (Hanno anche consigli su dove mettere le cose - la maggior parte degli sviluppatori avrà un'opinione o tre :-))


11

A seconda della libreria, ubuntu memorizza le sue librerie principalmente in tre posizioni

  1. / lib
  2. / Usr / lib
  3. / Usr / local / lib

Di seguito è riportato da File System Hierarchy Standard

/ lib

La directory / lib contiene le immagini della libreria condivisa necessarie per avviare il sistema ed eseguire i comandi nel filesystem di root, ad es. dai binari in / bin e / sbin.

/ Usr / lib

/ usr / lib include file di oggetti, librerie e file binari interni che non sono destinati ad essere eseguiti direttamente da utenti o script di shell. [22]

Le applicazioni possono utilizzare una singola sottodirectory in / usr / lib. Se un'applicazione utilizza una sottodirectory, tutti i dati dipendenti dall'architettura utilizzati esclusivamente dall'applicazione devono essere inseriti in tale sottodirectory.

/ usr / local / lib contiene librerie locali ovvero una specifica per questo sistema ma non riesco a trovare riferimenti a / usr / local / lib in FHS, contiene solo spiegazioni per / usr / local.



0

Dovresti dire al compilatore, dove può trovare la tua libreria. Supponiamo che il percorso della tua libreria sia "/path/to/lib/libfoo.a", potresti compilare e collegare il tuo programma "hello.c" in questo modo:

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

Questo non è specifico per Ubuntu, in realtà tutti i compilatori C che conosco supportano quelle bandiere.


-2

In Ubuntu si trovano in /usr/include.


1
I file di intestazione sono in/usr/include. I binari effettivi per una libreria non sono memorizzati lì. Le intestazioni possono essere considerate parte di una libreria, ma devono essere installate separatamente e vengono utilizzate per compilare programmi che utilizzano una libreria. Una volta compilato un programma che utilizza una libreria, non è più necessario o utilizzare più i file di intestazione.
Eliah Kagan,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.