Linux で dlopen と dlsym を使用して、次の 2 つのソース ファイルを機能させます。
#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): dlopen'
main.c:(.text+0x2b): undefined reference to
dlsym への未定義の参照'