我正在用 C 编写一个应用程序,它使用全局变量(日志文件结构)。在我的应用程序中,我在运行时动态加载共享库,并且我想使用指向相同日志文件结构的全局变量来记录共享库。
这在简单的方法中似乎是不可能的:
- 将全局变量声明为 extern 将不起作用,因为 dlopen() 表示全局变量是未定义的符号
- 再次定义全局变量将起作用,但“新”变量将与可执行文件中的“原始”变量不同
任何关于如何解决这个问题的提示都会很棒。
谢谢你!
您需要编译您的主应用程序-rdynamic
标志(例如:gcc -g -rdynamic -o main main.c
,并在动态库中声明全局变量extern
.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)