Come creare le librerie statiche in C++

In un programma C++ posso richiamare librerie statiche tramite l'istruzione #include seguita dal nome del file della libreria.

    Un esempio pratico

    1] Scrivo il codice sorgente

    Scrivo il sorgente di un programma chiamato "prova.cpp".

    1. #include "libreria.h"
    2. int main() {
    3. foo();
    4. return 1;
    5. }

    Il programma richiama il file libreria.h che contiene le funzioni della libreria statica esterna.

    1. void foo();

    Nel file libreria.h c'è soltanto la dichiarazione di funzione.

    Sto semplicemente dicendo al compilatore che esiste una funzione chiamata foo senza scrivere cosa fa.

    L'implementazione vera e propria della funzione foo() la digito in un altro file sorgente chiamato libreria.cpp

    1. #include "alib.h"
    2. #include <iostream>
    3. void foo()
    4. {
    5. std::cout << "Hello from foo()\n" << std::endl;
    6. }

    Nel codice sorgente di libreria.cpp manca la chiave main() perché si tratta di una libreria e, a differenza dei programmi, le librerie non hanno un punto di ingresso. Contengono soltanto un elenco di funzioni.

    Ricapitolando ho creato tre file sorgenti

    i tre file sorgenti

    2] Compilo la libreria statica

    A questo punto compilo la libreria statica con il compilatore g++ su Linux.

    g++ -c libreria.cpp

    Il compilatore crea un oggetto libreria.o che contiene il codice oggetto.

    creo l'oggetto libreria

    3] Creo un archivio con tutte le librerie statiche

    Poi creo un file archivio.a in cui salvare tutti le librerie oggetto usate dal programma.

    In questo caso è una sola (libreria.o).

    ar rvs libarchivio.a libreria.o

    Da notare che il prefisso lib davanti al nome dell'archivio.o è una convenzione del compilatore G++.

    l'archivio della libreria

    4] Compilo il programma indicando la libreria statica

    Una volta creato l'archivio con le librerie oggetto, posso compilare il programma prova.cpp passandogli la libreria archivio

    g++ -o prova prova.cpp -L. -l archivio

    Il compilatore crea un file eseguibile prova nella stessa directory.

    la compilazione e la creazione del file eseguibile

    A questo punto eseguo il file eseguibile per verificare che tutto funzioni.

    ./prova

    L'output del programma è

    Hello World

    E così via.

     


     

    Segnalami un errore, un refuso o un suggerimento per migliorare gli appunti

    FacebookTwitterLinkedinLinkedin
    knowledge base

    Libri di approfondimento

    Il linguaggio C

    1. Un esempio pratico
    2. Come compilare il programma

    Impariamo a programmare

    1. Come dichiarare le variabili
    2. Gli operatori
    3. La libreria stdio.h
    4. Come visualizzare in output testo e variabili
    5. Come usare le stringhe
    6. L'istruzione IF
    7. Le strutture cicliche
    8. Le funzioni
    9. Gli array