社区
工具平台和程序库
帖子详情
难道其他lib里面有全局变量?
Oversense
2008-12-10 11:35:13
我下载了一个sln,里面有30多个prj,一个exe, 其他全是lib
其实这个exe只需要依赖里面3个lib,如果在 项目依赖项里面只选这3个lib,编译出来 1M,如果都选上,编译出来2M
其实这个exe根本不会调用其它lib里面的东西,但是生成的release,居然大了这么多
而且在项目属性里面,消除未引用数据,是选上了的。
写到这儿,突然想到了,
难道其他lib里面有全局变量?
唉。。
...全文
150
11
打赏
收藏
难道其他lib里面有全局变量?
我下载了一个sln,里面有30多个prj,一个exe, 其他全是lib 其实这个exe只需要依赖里面3个lib,如果在 项目依赖项里面只选这3个lib,编译出来 1M,如果都选上,编译出来2M 其实这个exe根本不会调用其它lib里面的东西,但是生成的release,居然大了这么多 而且在项目属性里面,消除未引用数据,是选上了的。 写到这儿,突然想到了, 难道其他lib里面有全局变量? 唉。。
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用AI写文章
11 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
VCRWX
2008-12-16
打赏
举报
回复
9楼的兄弟搞清楚静态连接库还能不能再包含其他的静态或动态连接库?
linlan999
2008-12-16
打赏
举报
回复
[Quote=引用 6 楼 freshairfly 的回复:]
一般来说,依赖一个lib只会把用到的code链接进这exe吧,全局变量会无条件链接进去?
[/Quote]
难道不是吗?
heeten
2008-12-13
打赏
举报
回复
这三个lib可能还会包含其他的lib
xiaopoy
2008-12-12
打赏
举报
回复
全局变量影响不大的,数组之类都在未初始化段.
链接lib中code到程序和消除未引用数据有关系?编译器只会优化局部code除非在极端情况下会小心翼翼的主动去删改code
oyljerry
2008-12-11
打赏
举报
回复
lib会编译进exe,增加大小
猫已经找不回了
2008-12-11
打赏
举报
回复
其他的全删了,再看看如何。。。如果还可以,那楼主,你应该是对的。
Oversense
2008-12-11
打赏
举报
回复
关键是这句话"其实这个exe只需要依赖里面3个lib"是不是100%正确.
==================
都能编译通过呢,肯定了
Zark
2008-12-11
打赏
举报
回复
[Quote=引用 3 楼 Oversense 的回复:]
关键是这句话"其实这个exe只需要依赖里面3个lib"是不是100%正确.
==================
都能编译通过呢,肯定了
[/Quote]
要确保CLEAN后编译.
freshairfly
2008-12-11
打赏
举报
回复
我觉得有可能哦,
Zark
2008-12-11
打赏
举报
回复
关键是这句话"其实这个exe只需要依赖里面3个lib"是不是100%正确.
freshairfly
2008-12-11
打赏
举报
回复
一般来说,依赖一个lib只会把用到的code链接进这exe吧,全局变量会无条件链接进去?
c语言 引用定义变量,如何在c语言中定义及引用
全局变量
?
如何在c语言中定义及引用
全局变量
?答案:5信息版本:手机版解决时间 2019-10-03 10:30已解决2019-10-02 15:19如何在c语言中定义及引用
全局变量
?最佳答案2019-10-02 16:051、
全局变量
也称为外部变量,它是在函数外部定义的变量。它不属于哪一个函数,它属于一个源程序文件。其作用域是整个源程序。在函数中使用
全局变量
,一般应作
全局变量
说明。只有在函数内经过说明的...
当调用的DLL中有
全局变量
时调用它的多个实例是否共享同一个
全局变量
?????
当调用的DLL中有
全局变量
时调用它的多个实例是否共享同一个
全局变量
????问题的起因原于自己在工作中需要调用一个动态库,而其中要用到一个全局的变量才能把需要的句柄给传出来,于是就想,如果有多个进程要调用这个动态库时,后面的进程调用同一个动态库时,是否会把以前调用同一个动态库时的
全局变量
的值改变?????我猜想应该是不会的吧,于是带着这个疑惑,我写了一个示例程序来验证自己的想法。示例代码如下
lib
和dll中的
全局变量
lib
:
lib
中的
全局变量
在链接它的单元中是可以通过extern访问到的,但是链接它的单元如果定义了一个相同的
全局变量
那么
lib
中的
全局变量
将被忽略,而且不会出现重复定义的错误。
lib
中的函数则不相同如果链接它的单元有了相同的函数就会发生重复定义。在
lib
的cpp中定义一个静态的变量会被所有用到这个
lib
的模块公用,在链接一个程序的时候会自动的去掉重复链接的
lib
保证某个
lib
只有一份代码存在,
lib
库中允许存在
全局变量
Linux动态库so,静态库a,都是可以允许存在
全局变量
的,但是
全局变量
最好加上自己特有的属性(也就是需要注意不能重名),否则很有可能会因为被覆盖然后导致出错; ...
lib
和dll中
全局变量
的链接性及用法总结
今天在公司干完活后思考了
lib
和dll的链接性,然后做了测试,发现和我想象的不大相同,具体总结如下:
lib
:
lib
中的
全局变量
在链接它的单元中是可以通过extern访问到的,但是链接它的单元如果定义了一个相同的
全局变量
那么
lib
中的
全局变量
将被忽略,而且不会出现重复定义的错误。
lib
中的函数则不相同如果链接它的单元有了相同的函数就会发生重复定义。在
lib
的cpp中定义一个静态的变量会被所有用到这
工具平台和程序库
24,860
社区成员
27,333
社区内容
发帖
与我相关
我的任务
工具平台和程序库
C/C++ 工具平台和程序库
复制链接
扫一扫
分享
社区描述
C/C++ 工具平台和程序库
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章