0

我正在尝试将我现在使用 MinGW 4.7.2 编译的自编译库(zlib、SDL、SDL_Mixer、SDL_Image、PCRE、...)(.dll.a,非静态)与 MSVC 2010 (x64) 链接起来,这很好,但是当我尝试启动应用程序时,我收到了奇怪的错误,例如在 SDL_Mixer.dll 中找不到“deflateInit2”(但这应该在 zlib.dll 中......)。这可能是什么原因造成的?如果我将它们与 MinGW 链接,那么一切正常,没有任何缺陷。我是否必须将我的 *.dll.a 文件转换为 *.lib 文件,以便 MSVC 可以正确使用它们?我必须注意链接顺序吗?

在有人问之前,为什么我不使用官方库,这是因为它们不能与 MinGW 4.7.x 正常工作,他们总是用 MinGW 4.7.x 破坏堆栈。

奇怪的 MessageBox 截图:http: //i.imgur.com/zUlTt.png

4

1 回答 1

1

我自己解决了这个问题,方法是使用“dumpbin”从 dll 创建 *.def 导出,使用“lib /def:lib.def”创建 *.lib 导入库。

于 2012-11-12T23:53:10.887 回答