Differenze tra le versioni di "Creare una "Libreria condivisa" (Shared Library) .so"

Da Gambas-it.org - Wikipedia.
Riga 8: Riga 8:
  
 
==Elementi distintivi delle ''Librerie condivise''==
 
==Elementi distintivi delle ''Librerie condivise''==
Le ''Librerie condivise'' posseggono un nome chiamato "''soname''", costituito a sua volta in ordine da:
+
Riguardo alle ''Librerie condivise'' si distinguono tre tipi di nomi.
 +
 
 +
Il pprimo tipo di nome è chiamato "''soname''", costituito in ordine da:
 
* il prefisso <FONT color=#B22222>''lib''</font>;
 
* il prefisso <FONT color=#B22222>''lib''</font>;
 
* il <FONT color=#0000FF>nome</font> della libreria;
 
* il <FONT color=#0000FF>nome</font> della libreria;
Riga 18: Riga 20:
  
  
Tali Librerie hanno anche un ''nome reale'' che è nient'altro che il file contenente il codice della libreria. Il ''nome reale'' della Liberia è costituito a sua volta in ordine da:
+
Il secondo tipo di nome è chiamato ''nome reale'', il quale non è altro che il file contenente il codice della libreria. Il ''nome reale'' della Liberia è costituito a sua volta in ordine da:
 
* il prefisso ''lib'';
 
* il prefisso ''lib'';
 
* il nome della libreria;
 
* il nome della libreria;
Riga 25: Riga 27:
  
  
Vi è, poi, il nome che il compilatore usa, quando viene richiamata ed utilizzata una ''Liberia condivisa''. Tale nome non è altro il ''soname'' privo di qualsiasi numero di versione. Questo file non è altro che un collegamento simbolico al ''soname'' più recente della Libreria. Se, dunque, per esempio il ''soname'' della ''Liberia condivisa'' è ''/usr/lib/libnomequalsiasi.so.1'' , il file con il nome del collegamento simbolico a tale ''soname'' sarà: /usr/lib/libnomequalsiasi.so .
+
Vi è, infine, il nome che il compilatore usa, quando viene richiamata ed utilizzata una ''Liberia condivisa''. Tale nome non è altro il ''soname'' privo di qualsiasi numero di versione. Questo file non è altro che un collegamento simbolico al ''soname'' più recente della Libreria. Se, dunque, per esempio il ''soname'' della ''Liberia condivisa'' è ''/usr/lib/libnomequalsiasi.so.1'' , il file con il nome del collegamento simbolico a tale ''soname'' sarà: /usr/lib/libnomequalsiasi.so .
 +
 
 +
 
 +
Pertanto riasumendo avremo in ipotesi:
 +
* '''''soname''''': libnomequalsiasi.so.1
 +
* '''''nome reale''''': libnomequalsiasi.so.1.0
 +
* '''''nome del collegamento simbolico''''': libnomequalsiasi.so
  
  

Versione delle 18:02, 26 mag 2012

Introduzione

In Gambas possono essere richiamate con la funzione Extern le cosiddette "Librerie condivise" (Shared Library) con estensione finale .so . Esse sono librerie esterne a Gambas, scritte in C o C++, che offrono potenzialità, funzionalità e risorse non disponibili eventualmente al momento con Gambas.

Le Librerie condivise sono delle librerie che vengono caricate dai programmi al loro avvio.

E' possibile creare da sé una Liberia condivisa .so ed utilizzarla con uno o più dei nostri programmi dei Gambas, richiamandola, come sappiamo, con la funzione "Extern".


Elementi distintivi delle Librerie condivise

Riguardo alle Librerie condivise si distinguono tre tipi di nomi.

Il pprimo tipo di nome è chiamato "soname", costituito in ordine da:

  • il prefisso lib;
  • il nome della libreria;
  • l'estensione .so;
  • un punto e il numero della versione.


Esempio: libnomequalsiasi.so.0


Il secondo tipo di nome è chiamato nome reale, il quale non è altro che il file contenente il codice della libreria. Il nome reale della Liberia è costituito a sua volta in ordine da:

  • il prefisso lib;
  • il nome della libreria;
  • l'estensione .so;
  • un punto, un numero, poi un punto ed infine il numero del rilascio.


Vi è, infine, il nome che il compilatore usa, quando viene richiamata ed utilizzata una Liberia condivisa. Tale nome non è altro il soname privo di qualsiasi numero di versione. Questo file non è altro che un collegamento simbolico al soname più recente della Libreria. Se, dunque, per esempio il soname della Liberia condivisa è /usr/lib/libnomequalsiasi.so.1 , il file con il nome del collegamento simbolico a tale soname sarà: /usr/lib/libnomequalsiasi.so .


Pertanto riasumendo avremo in ipotesi:

  • soname: libnomequalsiasi.so.1
  • nome reale: libnomequalsiasi.so.1.0
  • nome del collegamento simbolico: libnomequalsiasi.so


Realizzazione pratica di una Libreria condivisa

- Pagina in costruzione -