[c++] Differenza tra librerie statiche e condivise?



Answers

Una libreria statica è come una libreria e una libreria condivisa è come ... una libreria. Con il primo, si ottiene la propria copia del libro / funzione da portare a casa; con quest'ultimo tu e tutti gli altri andate in biblioteca per usare lo stesso libro / funzione. Quindi chiunque voglia utilizzare la libreria (condivisa) deve sapere dove si trova, perché è necessario "andare a prendere" il libro / la funzione. Con una libreria statica, il libro / la funzione è tua proprietà e tu la tenga nella tua casa / programma, e una volta che ce l'hai non ti importa dove o quando l'hai presa.

Question

Qual è la differenza tra le librerie statiche e condivise?

Uso Eclipse e ci sono diversi tipi di progetti, tra cui librerie statiche e librerie condivise? Uno ha un vantaggio rispetto all'altro?




Il vantaggio più significativo delle librerie condivise è che nella memoria è caricata una sola copia del codice, indipendentemente dal numero di processi che utilizzano la libreria. Per le librerie statiche ogni processo ottiene la propria copia del codice. Ciò può portare a significativi sprechi di memoria.

OTOH, un vantaggio delle librerie statiche è che tutto è incluso nella tua applicazione. Quindi non devi preoccuparti che il client abbia la libreria (e la versione) giusta disponibile sul loro sistema.




Le librerie statiche sono compilate come parte di un'applicazione, mentre le librerie condivise no. Quando si distribuisce un'applicazione che dipende da librerie condivise, le librerie, ad es. dll su MS Windows devono essere installati.

I vantaggi delle librerie statiche è che non ci sono dipendenze necessarie per l'utente che esegue l'applicazione - ad esempio non devono aggiornare la loro DLL di qualsiasi cosa ... Gli svantaggi è che l'applicazione è di dimensioni maggiori perché la stai spedendo con tutte le librerie di cui ha bisogno.

Oltre a portare a piccole applicazioni, le librerie condivise offrono all'utente la possibilità di utilizzare la propria versione, forse migliore, delle librerie piuttosto che fare affidamento su una parte dell'applicazione




Related