¿Cuál es la diferencia entre bibliotecas estáticas y dinámicas (shared) en C++?
¡Hola a todos! Recientemente empecé a estudiar C++ y estoy tratando de entender las bibliotecas. Miro proyectos en GitHub y veo que unos incluyen archivos .lib, otros .dll (o .so en Linux). Según entiendo, hay dos tipos de bibliotecas: estáticas y dinámicas (shared). ¿Alguien puede explicar en términos simples cuál es la diferencia?
Tengo un pequeño proyecto: escribí una clase para trabajar con matrices (multiplicación, transposición, etc.). Ahora quiero convertirla en una biblioteca para usarla en diferentes programas. Pero no entiendo qué tipo elegir. ¿Qué pasará si uso una biblioteca estática? ¿Y si uso una dinámica? ¿Cómo afectará esto al tamaño del archivo ejecutable, la velocidad de ejecución y la facilidad de actualización?
Aquí hay un ejemplo del código que quiero convertir en biblioteca:
```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: