上の共有ライブラリをロード中に常に共有オブジェクト内の関数またはシンボルを解決しなければならないの私たちは、実行時に共有ライブラリをロードする必要がある場合、それはそうHow to load a dynamic library on demand from a C++ function/Qt methodは、なぜ私たちは、ランタイム
を通り抜けました。 How to load a dynamic library on demand from a C++ function/Qt method
に提案されているように我々は常に我々が2 .OR
をdlopenを使用して、実行時に共有ライブラリをロードする場合)、1)dlsymをを使用して他の技術を共有オブジェクト内の関数/シンボル名を解決するためにコードを書きます
3)私の共有ライブラリが私の共有ライブラリが機能
FUN1()、fun2を持っ例えばシンボル/機能の何百万を持っていますので..... fun1000000
はどこ任意の直接的な方法があります関数/シンボル名を解決するコードを記述する必要はなく、共有ライブラリをロードした直後に関数を共有ライブラリ関数から直接呼び出すだけです。あなたが直接そのようなシンボルが呼び出し可能にする場合は、私が
void loadSharedObject() {
//load the
// Call the function names directly
// no extra code for resolving the function /symbols names
// for example
fun1()
fun2()
}
ライブラリーに 'QObject'が組み込まれている場合は、そのメタオブジェクトを使ってその機能を取得して呼び出すことができます。それ以外の場合は、ELF構造体(Linuxではreadelf)を解析し、dlsymを使用する必要があります(これは面倒なことかもしれません)。 –
なぜあなたはそれについて気にしていますか?どのような問題を解決しようとしていますか?他の誰かが一見して戦っていない上り坂と戦っているように見えますが、それはあなたにどんな鐘も鳴らしませんか?あなたはあまりにも頑張っています。それは不要です。 –