最近のGladeを使用してアプリケーションを開発したので、GtkBuilderを使用して実行時にXMLからUIをロードする必要があります。Gtkが古すぎるディストリビューション(RHEL 5など)でこれを実行しようとすると、次のように失敗します
未定義のシンボル:gtk_builder_new
これは正常であり、予想されます。しかし、そのエラーをキャッチして、代わりに「Gtkのバージョンが十分に新しくない」などのGUIエラーダイアログを表示する方法があるのだろうか?これは、main()が開始する前に発生するエラーです。したがって、実際の問題は、実行時のリンクエラーを処理する方法があるかどうかです。グーグルをしているときに、リンカープラグインの概念についての言及を見つけましたが、それについての詳細はまだ見つかりませんでした。とにかく私のアプリケーションの外に存在しなければならない何かのように聞こえるので、多分それは少し遠いです。
dlopen()を使用してGtkをロードすることもできますが、フルパスを指定する必要があり、必要なすべての関数をリンクするためにdlsym()を何度も呼び出す必要があるため、これはばかげています。ld-linux.soが検索を行います。ld-linux.soを使用して実際にロードせずにlibgtkへのパスを教えて、バージョンが十分に新しいかどうか(またはgtk_builder_newが存在するかどうか)を確認し、問題がなければランタイムリンクを終了する方法はありますか?