実行時に特定のモジュール (共有ライブラリ) をロードするクロスプラットフォーム プログラムを c++ で作成しようとしています。これを行うために、Poco C++ Librariesの ClassLoader を使用しています。autoconf、automake、libtool を使用してコンパイル チェーンを作成しました。これは Linux 環境では問題になりませんが、Windows では問題が発生します。Makefile を利用できるようにコンパイルするときに、MinGW と MSYS を使用しています。ClassLoader は、Windows 固有の LoadLibrary() 関数を使用してモジュールをロードします。つまり、モジュールを DLL としてコンパイルする必要があります。
ライブラリにコンパイルするクラスは、メイン アプリケーション内の別のクラスを継承します。その後、make を実行しようとすると、未定義の参照について多くのエラーが表示され、共有ライブラリの構築が拒否されます。これは名前のマングリングが原因だと思います。それとも、ライブラリの外でクラスを継承できないからですか? (そのクラスはライブラリのソースに含まれていませんが、ヘッダー ファイルは見つかります)
MinGW + MSYS の下でコンパイルすることを主張するが、それでも LoadLibrary() を使用することがどれだけの問題をもたらすかはよくわかりません。これの経験がある人はいますか?