x.so
ターゲット システムに、開発システムにはないライブラリがあるとします。
gcc を使用して、それを使用してターゲット マシンで実行される開発マシン上のプログラムをコンパイルする必要がありますx.so
。
これを行う方法はありますか?
はい。そのライブラリに対してリンクするのではなく、dlopen() で開きます。
void* dlhandle = dlopen("x.so", RTLD_LAZY);
dlsym() を使用してシンボルをロードします。
some_func_pointer = dlsym(dlhandle, "function");
次に、dlsym() から取得した関数ポインターを介して function() を呼び出すことができます。もちろん、関数ポインターの型は、ロードしている関数と一致する必要があります。チェックされません。