Avatar ·

Was ist der Unterschied zwischen statischen und dynamischen (Shared) Bibliotheken in C++?

Hallo zusammen! Ich habe vor kurzem angefangen, C++ zu lernen, und versuche, mich mit Bibliotheken vertraut zu machen. Ich schaue mir Projekte auf GitHub an und sehe, dass einige .lib-Dateien einbinden, andere .dll (oder .so unter Linux). Soweit ich verstehe, gibt es zwei Arten von Bibliotheken: statische und dynamische (Shared). Kann jemand in einfachen Worten erklären, was der Unterschied ist?\n\nIch habe ein kleines Projekt: Ich habe eine Klasse für die Arbeit mit Matrizen geschrieben (Multiplikation, Transponierung usw.). Jetzt möchte ich daraus eine Bibliothek machen, um sie in verschiedenen Programmen zu verwenden. Aber ich verstehe nicht, welchen Typ ich wählen soll. Was passiert, wenn ich eine statische Bibliothek verwende? Und wenn eine dynamische? Wie wirkt sich das auf die Größe der ausführbaren Datei, die Geschwindigkeit und die Bequemlichkeit von Updates aus?\n\nHier ist ein Beispielcode, den ich in eine Bibliothek umwandeln möchte:\n\n```cpp\n// matrix.h\n#pragma onc