我应该在C++中使用静态库

Los*_*ace 2 c++ visual-c++

在C++中使用静态库有什么用例?我已经看到人们创建DLL而不是仅使用静态库.你的推荐是什么?

Bea*_*anz 5

我几乎到处都是静态库的忠实粉丝.DLL为您提供的静态库无法做到的一件大事就是能够动态加载和卸载库功能.因此,如果您的应用程序将支持某种热交换插件,则需要使用动态库.否则你可能会使用静态库.

静态库打开了大量优化的大门,这些优化是动态库无法实现的,因为它们是在链接时执行的.在微软世界中,链接时间代码生成(LTCG)使您能够通过您的应用程序以及您的库(在gcc中称为链接时间优化[LTO])进行整个程序优化和死代码剥离.

另外,静态库往往会使您的程序更容易分发,因为您不必传递大量的库文件,并且如果您要对库进行版本化,则可以完全避免DLL-hell.

  • 我宁愿牺牲10MB的硬盘空间(这是便宜的)比以往任何时候都要处理DLL-hell或microsofts SxS的东西.我花了更多时间来调试疯狂的dll加载错误,而不是花费足够的钱来获得足够的钱来获得额外的10MB磁盘空间. (3认同)