Avatar ·

C++中静态库和动态库(shared)有什么区别?

大家好!我最近开始学习C++,正在尝试理解库的概念。我在GitHub上看到一些项目链接.lib文件,另一些链接.dll(Linux上是.so)。据我了解,有两种类型的库:静态库和动态库(shared)。有人能用简单的话解释一下区别吗? 我有一个小项目:我写了一个用于矩阵运算的类(乘法、转置等)。现在我想把它做成一个库,以便在不同的程序中使用。但我不确定该选择哪种类型。如果我使用静态库会怎样?动态库呢?这会对可执行文件的大小、运行速度、更新便利性产生什么影响? 以下是我想要转化为库的代码示例: ```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: int rows_, cols_ ```