Qt 问题 (是否共享 DLL ?)

tongshou 2019-05-06 11:38:21

Qt 有一个出名的问题是打包后软件很大,就是仅仅运行 显示Hello,Word功能的软件,也要好几个M。问题主要是出在打包入很多支持的DLL。

在电脑里调用普通的同一个DLL,在同一个地方(目录),不管调用几次、由不同程序调用,在电脑内存中仅仅保留一份共享的程序。
但是对于同一个DLL ,copy到不同目录,然后分别装载,在电脑内存会当成不同程序,分开存在于内存。

如果用Qt做了软件A 和软件 B,这两个软件中都包含同一个DLL: C.dll. 这里是否有人深入研究过这样的问题,如果电脑同时运行A 和B,
共同的DLL文件 C.dll 装载在电脑内存中, 是同一份的共享程序, 还是不同、独立的两份程序?


...全文
65 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
tongshou 2019-05-07
  • 打赏
  • 举报
回复
引用 1 楼 stherix 的回复:
只要引用的位置不一样,应该就是两份不同的内存拷贝

微软以前弄出dll技术以为是想减少内存占用
后来发现同一个dll版本太多,反而会引起灾难(dll hell)
后来基本上所有app都习惯于自己把dll放到自己的目录下了


谢谢!如果是这样,当同一个电脑运行大量Qt的产品,可能更是灾难性。


stherix 2019-05-07
  • 打赏
  • 举报
回复
只要引用的位置不一样,应该就是两份不同的内存拷贝 微软以前弄出dll技术以为是想减少内存占用 后来发现同一个dll版本太多,反而会引起灾难(dll hell) 后来基本上所有app都习惯于自己把dll放到自己的目录下了

64,281

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧