社区
iOS
帖子详情
主程序和动态库共享全局变量问题
zitengxin
2012-01-10 05:32:24
全局变量在一个静态库中定义
主程序和动态库都用到这个静态库
主程序加载的时候会初始化静态库中的全局变量
动态库中访问这个全局变量的时候是空的
怎么能让动态库中正确访问到主程序初始化的那个全局变量
不要在加载的时候传值给动态库
ps:这里不讨论iphone用动态库能否通过审核问题,只运行在越狱机子上。
...全文
414
3
打赏
收藏
主程序和动态库共享全局变量问题
全局变量在一个静态库中定义 主程序和动态库都用到这个静态库 主程序加载的时候会初始化静态库中的全局变量 动态库中访问这个全局变量的时候是空的 怎么能让动态库中正确访问到主程序初始化的那个全局变量 不要在加载的时候传值给动态库 ps:这里不讨论iphone用动态库能否通过审核问题,只运行在越狱机子上。
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
3 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
一丝晨光
2012-01-11
打赏
举报
回复
如果程序已经运行了,静态库中的全局变量是已经初始化过的,怎么会是空的?
你要确定动态库是在程序运行后加载的么?还在程序一开始,没加载完数据(包括静态库中全局变量),
动态库就开始读静态库数据了?
xiezhenghai
2012-01-11
打赏
举报
回复
看下static 的用法是否符合你的项目 , 具体分析
zitengxin
2012-01-11
打赏
举报
回复
程序运行时初始化变量
程序运行过程中使用这个变量都是没有问题的
当动态加载动态库后,动态库里面再访问这个变量就是空的,主程序里访问还是正常的
动态库
与
主程序
共享
全局变量
曾经在一次写程序的时候,全局使用一个日志对象,所有的日志信息都由此日志对象写入文件。但是发现在动态链接库里,无法存取到该全局对象,后经查找资料。发现,动态链接库是否能存取
主程序
的
全局变量
,
主程序
是否能存取动态链接库里定义的
全局变量
都是可以通过链接指令改变此行为。
主程序
存取动态链接库里的
全局变量
例如
动态库
里定义
全局变量
int i, 在
主程序
里申明extern int i。 则
主程序
与
动态库
之间的
全局变量
一个是参看: http://blog.csdn.net/wdt3385/article/details/8086423 以上方法比较麻烦: 个人有种更简单的办法, 直接在
动态库
里malloc
全局变量
内存, 然后, 在
动态库
中定义一个方法或者是函数返回改
全局变量
的地址,
主程序
需要访问这个
动态库
的
全局变量
的, 直接调用这个函数返回
全局变量
地址进行与
动态库
数据
共享
, 这应该也可以用于进程间共
linux
动态库
被多进程加载,多进程访问
动态库
全局变量
问题
1、 如果你做的
动态库
里面有
全局变量
,而且你想让不同的进程通过
动态库
的
全局变量
实现
共享
访问,那是不可行的。2、主进程如果访问
动态库
的
全局变量
是可以的,不过你需要在主进程中extern声明一下这个
动态库
中的
全局变量
,然后主进程就可以使用这个
全局变量
了。进程1和进程2在使用
动态库
的时候实际上是代码段
共享
,而数据段和堆栈是独立出来,系统会自动拷贝一份内存给另一个进程,也就是说
动态库
的
全局变量
在for...
Linux
共享
库(
动态库
)与进程之间
共享
全局变量
可行性分析
在
主程序
中可以使用动态链接库中的
全局变量
是正确的,不可否认的,但这需要在程序编译链接时就要把
动态库
加上,并在需要使用的程序中使用extern声明变量,这其实没有达到
动态库
的本质目的(使用时再调用);这其实不算是一个大
问题
,如果只在一个进程中使用也不会有
问题
,这里主要讨论在多进程中使用
动态库
全局变量
的
问题
。 如果想在进程间依靠
动态库
来
共享
全局变量
恐怕是不太可能的事情,因为不同进程访问
动态库
时,是写
Linux
共享
库(
动态库
)与进程之间
全局变量
是无法
共享
的
【每个进程调用的
动态库
中的
全局变量
都是一个拷贝,各自进程需要自己去初始化各自的全局,而且操作全局也互补影响】 【比如banker.c,在sghall里面有个初始化,在游戏进程里也有初始化,需要两者
共享
变量得用
共享
内存或者其他进程间通讯】 Linux
共享
库(
动态库
)与进程之间
共享
全局变量
可行性分析 概念就不多说了,下面主要讨论一下在进程中使用
共享
库(
动态库
)...
iOS
29,027
社区成员
12,467
社区内容
发帖
与我相关
我的任务
iOS
主要讨论与iOS相关的软件和技术
复制链接
扫一扫
分享
社区描述
主要讨论与iOS相关的软件和技术
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章