假设我的目标系统上有一个不能在我的开发系统上使用的x.so库。
我需要使用gcc在我的开发机器上编译一个程序,该程序使用该x.so在目标机器上运行。
有没有办法做到这一点?
发布于 2013-01-22 19:03:48
是。您根本没有链接到该库,而是使用dlopen()打开它:
void* dlhandle = dlopen("x.so", RTLD_LAZY);并使用dlsym()从其中加载符号:
some_func_pointer = dlsym(dlhandle, "function");然后,您可以通过从dlsym()获得的函数指针调用function()。当然,函数指针的类型必须与正在加载的函数相匹配。系统不会为您选中此选项。
https://stackoverflow.com/questions/14456923
复制相似问题