lib库和动态库在链接的时候,是把整个lib库链接过去,还是使用到的函数和资源?

96掌门师兄 2013-12-04 02:11:17
比如说我的lib库有10个函数,但是调用lib的 exe只有调用了其中的5个,另外5个是没有使用的,这样在编译的时候是链接多少个函数呢?
如果全部链接的话会使得exe大小增大,在运行的时候,也会占用进程代码段的空间吗?
求知晓,求讨论。
windows下和linux下是一样的吗?
...全文
209 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
96掌门师兄 2013-12-05
  • 打赏
  • 举报
回复
引用 8 楼 wangk 的回复:
[quote=引用 3 楼 xiaoxiaoyu85 的回复:] 恩,那么dll会中的代码会全部加载到内存中对吧,这样确实就不该让一个dll包含太多的接口,导致消耗内存,哎,现在的软件消耗内存太厉害了
不是吧,现在的PC机内存足够你使用的,除非是嵌入式系统,WinPhone,Android之类的否则基本上正常的使用不会在乎DLL占用的那点内存。内存占用多的大部分程序运行时分配的多。[/quote] 能不浪费,最好不浪费吧
wangk 2013-12-05
  • 打赏
  • 举报
回复
引用 3 楼 xiaoxiaoyu85 的回复:
恩,那么dll会中的代码会全部加载到内存中对吧,这样确实就不该让一个dll包含太多的接口,导致消耗内存,哎,现在的软件消耗内存太厉害了
不是吧,现在的PC机内存足够你使用的,除非是嵌入式系统,WinPhone,Android之类的否则基本上正常的使用不会在乎DLL占用的那点内存。内存占用多的大部分程序运行时分配的多。
副组长 2013-12-04
  • 打赏
  • 举报
回复
项目不达到相当的规模其实真的不用考虑这些问题。
笨蛋糕 2013-12-04
  • 打赏
  • 举报
回复
引用 5 楼 woshi_hujunjun 的回复:
[quote=引用 3 楼 xiaoxiaoyu85 的回复:] [quote=引用 2 楼 oyljerry 的回复:] lib只会link进用到的。dll是动态加载不会link,运行时使用
恩,那么dll会中的代码会全部加载到内存中对吧,这样确实就不该让一个dll包含太多的接口,导致消耗内存,哎,现在的软件消耗内存太厉害了[/quote] 我从来没考虑过这些问题 ,看来我太弱了[/quote] 都需要学习啊
woshi_hujunjun 2013-12-04
  • 打赏
  • 举报
回复
引用 3 楼 xiaoxiaoyu85 的回复:
[quote=引用 2 楼 oyljerry 的回复:] lib只会link进用到的。dll是动态加载不会link,运行时使用
恩,那么dll会中的代码会全部加载到内存中对吧,这样确实就不该让一个dll包含太多的接口,导致消耗内存,哎,现在的软件消耗内存太厉害了[/quote] 我从来没考虑过这些问题 ,看来我太弱了
许文君 2013-12-04
  • 打赏
  • 举报
回复
dll是通过导入地址表来的,相应的内存的瓶颈不应该在这个上面,建议找找别的原因。
96掌门师兄 2013-12-04
  • 打赏
  • 举报
回复
引用 2 楼 oyljerry 的回复:
lib只会link进用到的。dll是动态加载不会link,运行时使用
恩,那么dll会中的代码会全部加载到内存中对吧,这样确实就不该让一个dll包含太多的接口,导致消耗内存,哎,现在的软件消耗内存太厉害了
oyljerry 2013-12-04
  • 打赏
  • 举报
回复
lib只会link进用到的。dll是动态加载不会link,运行时使用
96掌门师兄 2013-12-04
  • 打赏
  • 举报
回复
忘记说了 动态库不存在增大exe,但是exe运行时会全部加载到内存里吧?

15,471

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 进程/线程/DLL
社区管理员
  • 进程/线程/DLL社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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