我正在尝试用 c++ 编写一个跨平台程序,该程序将在运行时加载某些模块(共享库)。为此,我使用了Poco C++ Libraries中的 ClassLoader 。我使用 autoconf、automake 和 libtool 编写了一个编译链。这在 Linux 环境中应该没有问题,但是在 Windows 中会出现问题。我在编译时使用了 MinGW 和 MSYS,以便能够使用我的 Makefile。ClassLoader 使用 Windows 特定的 LoadLibrary() 函数来加载模块,这意味着我必须将它们编译为 DLL。
我编译到库中的类继承了主应用程序中的另一个类。然后,当我尝试运行 make 时,它会抱怨很多未定义的引用并拒绝构建共享库。我想这是因为名字修饰。还是因为我不能继承库之外的类?(该类不包含在库的源代码中,但找到了头文件)
我不太确定我坚持在 MinGW + MSYS 下编译但仍然使用 LoadLibrary() 会带来多少麻烦。有这方面经验的人吗?