Avatar ·

Quelle est la différence entre les bibliothèques statiques et dynamiques (shared) en C++ ?

Bonjour à tous ! J'ai récemment commencé à apprendre le C++ et j'essaie de comprendre les bibliothèques. Je regarde des projets sur GitHub et je vois que certains utilisent des fichiers .lib, d'autres des .dll (ou .so sous Linux). D'après ce que je comprends, il existe deux types de bibliothèques : statiques et dynamiques (shared). Quelqu'un pourrait-il expliquer en termes simples quelle est la différence ? J'ai un petit projet : j'ai écrit une classe pour travailler avec des matrices (multiplication, transposition, etc.). Maintenant, je veux en faire une bibliothèque pour l'utiliser dans différents programmes. Mais je ne comprends pas quel type choisir. Que se passera-t-il si j'utilise une bibliothèque statique ? Et si j'utilise une bibliothèque dynamique ? Comment cela affectera-t-il la taille du fichier exécutable, la vitesse d'exécution, la facilité de mise à jour ? Voici un exemple de code que je veux transformer en bibliothèque : ```cpp // matrix.h #pragma once #include class Matrix { public: Matrix(int rows, int cols); Matrix operator*(const Matrix& other) const; Matrix transpose() const; void print() const; private: