繁体   English   中英

在共享库中使用全局变量

[英]Using a global variable in a shared library

我在C中编写一个使用全局变量(日志文件结构)的应用程序。 在我的应用程序中,我在运行时动态加载共享库,我想使用指向相同日志文件结构的全局变量来记录共享库。

这似乎不太可能采用简单的方法:

  • 将全局变量声明为extern将不起作用,因为dlopen()sas表示全局变量是未定义的符号
  • 再次定义全局变量将起作用,但“new”变量将不同于可执行文件中的“原始”变量

任何暗示如何解决这个问题都会很棒。

谢谢!

您需要使用-rdynamic标志编译主应用程序(例如: gcc -g -rdynamic -o main main.c ,并使用extern在动态库中声明全局变量。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM