Visual Studio解决方案:静态或共享项目?

时间:2010-05-15 11:47:03

标签: c++ visual-studio visual-c++ linker

当整个项目(解决方案)由多个子项目(.vcproj)组成时,将它们联系起来的优选方式是:作为静态库还是作为共享库?

假设这些子项目未在其他地方使用,共享库方法不应减少内存使用或加载时间。

1 个答案:

答案 0 :(得分:3)

意见:几乎在所有情况下都是静态的。

在Windows上的C ++中,跨动态加载的库构建接口要困难得多。例如,与Unix共享对象不同,您不能为所有模块使用标准单例,因为DLL将拥有自己的一组静态变量。

面向对象的接口通常很难从DLL导出。

至于加载时间,需要使用共享库来解决诸如变基的问题。

另一方面,您今天未共享的库可能会在将来共享。但是,在大多数情况下,最好支付RAM或磁盘映像中的重复价格,而不是依赖额外模块的价格。