如何制作可执行文件,以动态加载共享对象并将其未定义符号解析为可执行文件本身?在Linux上。
例如,共享对象具有
extern int a;
void f() { a=1; }
可执行文件有
int a;
我想f()
从可执行文件中调用并a
更改其值。
谢谢。
从dlopen
手册页:
库中的外部引用使用该库的依赖项列表中的库以及以前使用RTLD_GLOBAL标志打开的任何其他库来解析。如果可执行文件与标志“ -rdynamic”(或同义为“ --export-dynamic”)链接,则可执行文件中的全局符号也将用于解析动态加载的库中的引用。
因此,重新编译您的主应用程序-rdynamic
应该会有所帮助。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句