我打算发布和部署一个用C ++和wxWidgets编写的应用程序。 wxWidgets库可以作为DLL和静态库一样使用。 因此,我可以select将应用程序部署为dynamic构build的应用程序或静态构build。
目前,我更喜欢静态生成选项,因为:
题
我错过了非常重要的事情吗?
我的建议是去静态链接 。 我的两分优势:
XCOPY部署)。 客户不会打扰! 当有充分的理由使用它时,应该使用动态链接,否则使用静态链接。 使用动态链接的一些很好的理由是:
如果这两个原因都不适用,例如你只是想在MSW下分发一个程序,那么静态链接就更简单了。
一个相关的注意事项:如果你最终分发wxWidgets DLLs,考虑为它们使用一个唯一的后缀,而不是默认使用的“custom”,这将减少DLL和其他版本的wx之间混淆的可能性。
虽然在你的情况下,可执行文件不是很大,但是如果你把所有的东西都静态地链接起来的话,它可能变得非常大 它也使用更多的内存,因为较大的可执行文件必须加载到内存中。
如果您要使用动态库,则操作系统可以在每个进程之间“共享”只读内存,从而降低内存需求。
使用动态库更新应用程序也更容易,而不必更新整个可执行文件,只需更换动态库(假设它的接口是相同的)就可以了! 如果用户想要更新其动态库(例如,通过包管理器),也是如此。