先是出错代码
void (*FUNC)(int a);
FUNC = dlsym(handle, "FUNC");
这个错误是出现在C++下面的,因为dlsym返回的是void*,但是C++又不允许隐形转换通用指针,所以就报这个错。
解决办法就是写一个typedef,然后做一次显示类型转换
typedef (*fptr_FUNC)(int a);
fptr_FUNC FUNC = NULL;
FUNC = (fptr_FUNC)dlsym(handle, "FUNC");
问题解决