Я пытаюсь написать кроссплатформенную программу на c ++, которая будет загружать определенные модули (разделяемые библиотеки) во время выполнения. Для этого я использую ClassLoader из Poco C ++ Libraries . Я написал цепочку компиляции с использованием autoconf, automake и libtool. Это не должно быть проблемой в среде Linux, но проблема возникает в Windows. Я использую MinGW и MSYS при компиляции, чтобы иметь возможность использовать мои Makefiles. ClassLoader использует специфичную для Windows функцию LoadLibrary () для загрузки модулей, что означает, что я должен скомпилировать их как DLL.
Класс, который я компилирую в библиотеку, наследует другой класс в основном приложении. Затем, когда я пытаюсь запустить make, он много жалуется на неопределенную ссылку и отказывается создавать общую библиотеку. Я предполагаю, что это из-за искажения имени. Или это потому, что я не могу наследовать класс вне библиотеки? (Этот класс не включен в исходные коды библиотеки, но заголовочный файл найден)
Я не совсем уверен, сколько неприятностей это принесет, я настаиваю на компиляции под MinGW + MSYS, но все еще использую LoadLibrary (). Кто-нибудь с таким опытом?