Voglio aggiungere la mia libreria da usare nella compilazione in c, ma non so davvero dove si trova Ubuntu.
Voglio aggiungere la mia libreria da usare nella compilazione in c, ma non so davvero dove si trova Ubuntu.
Risposte:
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 :-))
A seconda della libreria, ubuntu memorizza le sue librerie principalmente in tre posizioni
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.
Ubuntu segue il Filesystem Hierarchy Standard ( http://en.wikipedia.org/wiki/Filesystem_Hierarchy_Standard ), le normali librerie di applicazioni dovrebbero essere archiviate in / usr / lib.
Si noti che lo sviluppo / gestione delle librerie non è un argomento banale, è necessario leggere una documentazione più dettagliata, ecco un bel tutorial: http://www.yolinux.com/TUTORIALS/LibraryArchives-StaticAndDynamic.html
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.
In Ubuntu si trovano in /usr/include
.
/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.