我是这个话题的新手。我试图在我的c代码中动态链接共享库,但我收到错误...
undefined reference to `func'
我在网上搜索过,但我的语法无法解决...
void *handle;
int (*func)(char **);
handle = dlopen(argv[0], RTLD_LOCAL | RTLD_LAZY);
*(int **)&func = dlsym(handle, pluggin_method->FunctionName); //I might need to pass a string by first using strcpy
int func_ret_val = (func)(argv); //execute function
我把头撞在墙上试图解决这个问题。有什么帮助吗?
答案 0 :(得分:0)
代码是否有声明:
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="24dp"
android:height="24dp"
android:viewportHeight="24.0"
android:viewportWidth="24.0">
<path
android:fillColor="#FF000000"
android:pathData="@string/svg_pause"/>
</vector>
您是否在链接声明&gt;
中加入了#include <dlfcn.h>
库
如果-ldl
的返回值为NULL,则调用dlopen()
以获取生成的错误消息。
注意:dlerror()
加载图书馆并返回“不透明”图片。库的句柄,而不是指向实际函数的指针。
成功调用dlopen()后,需要调用dlopen()
来获取函数内存中的实际地址。
检查dlsym()
的返回值(!= NULL)以确保操作成功