如何解决如何从插件访问可执行文件中的extern变量?
我需要从运行时加载的.dll中获取.exe文件中定义的一些extern
变量的值。它可以在Linux中运行,但在Windows上使用mingw编译时出现 undefined reference 错误。这里是小的编译测试。
$ cat lib.cpp
#include <stdio.h>
extern int val;
void func()
{
printf("%d\n",val);
}
$ g++ -fPIC -c lib.cpp -o lib.o
$ ld -shared lib.o -o lib.so
$ nm lib.so | grep val
U val
$ i686-w64-mingw32.shared-g++ -c lib.cpp -o lib.o
$ i686-w64-mingw32.shared-g++ -shared lib.o -o lib.ldd
lib.o:lib.cpp:(.text+0x7): undefined reference to `val'
collect2: error: ld returned 1 exit status
为什么会发生此错误以及如何解决?
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。