我打算在 linux 上使用 dlopen 和 dlsym 来使这两个源文件工作:
#include <dlfcn.h>
#include <stdio.h>
int main()
{
int *(func)(void);
func=dlsym( dlopen("/home/noah/tmp/libmod.so.1", RTLD_LAZY), "func");
printf("%d\n", *func());
return 0;
}
和:
int func()
{
return 42;
}
但是当我编译第一个时,它一直说:
main.c:9:错误:需要左值作为赋值的左操作数
编辑:我尝试添加一个演员,并使其成为一个函数指针,但现在它说: main.c:(.text+0x1f): undefined reference to dlopen'
main.c:(.text+0x2b): undefined reference to
dlsym'