我计划发布和部署一个用C ++和wxWidgets编写的应用程序。 wxWidgets-library既可用作dll,也可用作静态库。因此,我可以选择将应用程序部署为动态构建应用程序或静态构建。
目前,我更喜欢静态构建选项,因为:
问题
我是否错过了一些非常重要的内容?
答案 0 :(得分:5)
当有充分理由使用动态链接时,应使用动态链接,否则使用静态链接。使用动态链接的一些很好的理由是:
如果这些原因都不适用,例如你只想在MSW下发布一个程序,静态链接更简单,更可取。
相关说明:如果您最终分发wxWidgets DLL,请考虑为它们使用唯一的后缀而不是默认使用的“custom”,这将减少您的DLL与某些其他版本的wx之间混淆的可能性。< / p>
答案 1 :(得分:3)
我的建议是去静态链接。我的两分钱优势:
XCOPY
部署)。客户不会打扰!答案 2 :(得分:1)
虽然在您的情况下可执行文件不是很大,但如果您静态链接所有内容,它可能会变得非常大。它还使用更多内存,因为必须将较大的可执行文件加载到内存中。
如果您要使用动态库,操作系统可以从每个进程之间“共享”只读内存,从而降低内存需求。
使用动态库更新应用程序也更容易,因为不必更新整个可执行文件,您只需更换动态库(假设其界面相同),瞧!如果用户想要更新其动态库(例如,通过包管理器),则同样适用。