Avatar ·

何时在C++中使用动态库,何时使用静态库?

大家好!我刚开始学习C++和项目构建,对库的使用有些困惑。我大致理解了有静态库(.lib, .a)和动态库(.dll, .so),但不知道在实际中何时使用哪种。 例如,我正在写一个小项目——一个控制台计算器。我使用一个数学函数库(假设是我自己的)。如果我静态链接它,代码会直接复制到我的.exe中。如果动态链接,库会是一个单独的文件。有什么好处? 网上说静态库会使exe变大,动态库使exe变小,但这并不是唯一的区别。我还听说DLL在更新时可能会“损坏”,而静态库不会。那么如果动态库不可靠,为什么还需要它们?以及如何正确链接第三方库,比如Boost或OpenGL?我需要一个在Windows和Linux上都能工作的解决方案。 请帮助我理解。请举例说明。