RTLD_NOWで dlopen() を使用して、共有ライブラリの読み込みを遅らせることができます。ただし、ライブラリが動的に読み込まれると、dlsym を使用して各シンボルを個別に読み込む必要があります。
私のライブラリには多数の API が含まれているため、それらすべてに対して dlsym を呼び出したくありません。API を通常のロードタイム リンク (dlsym を必要とせずに API を呼び出すだけ) と同じように動作させる方法はありますか?
おそらくもう関連性はありませんが、コードに通常の関数のように見えるが内部的に呼び出すスタブdlopen
を提供する Windows DLL インポート ライブラリの類似物を探しています。dlsym
Linux はすぐに使用できるインポート ライブラリを提供していませんが、カスタム スクリプトを介して手動で生成するか、Implib.soツールを使用してこれを完全に自動的に行うことができます。