将 Boost 与 MinGW 结合使用时出现问题
我们目前遇到一些严重的构建问题,因为我们的客户昨天意识到他需要使用 MinGW 而不是 VC++ 编译我们的库,今天截止。我们已经设置了工具链,下载并构建了 boost,一切都运行良好,一切都编译和链接。但即使是使用任何已编译的 boost 库的最简单的应用程序也将无法运行。 gdb 产生臭名昭著的错误:
Error: dll starting at 0x... not found
问题是,所有内容都是静态链接的。我们怀疑与运行时库存在一些冲突,但我们甚至不知道如何更准确地诊断错误。我们使用相同的编译器(GCC 4.5 与 MinGW 一起)构建了所有内容。不使用编译的 boost 库的应用程序运行良好。
有人有任何见解吗?
We currently have some serious build problem because our client realized yesterday that he would require our library compiled with MinGW instead of VC++, deadline today. We have setup the toolchain, downloaded and built boost, all ran fine, everyting compiles and links. But even the simplest application using any of the compiled boost libraries will not run. gdb produces the infamous error:
Error: dll starting at 0x... not found
The thing is, that everything is linked statically. We suspect that there is some conflict with the runtime libraries, but we have no idea even how to diagnose the error more precisely. We have built everything with the same compiler (GCC 4.5 comming with MinGW). Applications that do not use compiled boost libraries run fine.
Does anyone have any insights?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
唔。我有一些问题可能会帮助您走上正轨。它是 32 位应用程序吗?您想在 Win64 或 Win32 上运行它吗?您知道缺少什么 DLL 吗?您可以尝试 "Dependency Walker" 这可能有助于解决这个问题。
Hmm. I have some questions that might help you onto right track. Is it 32 bit application? Are you trying to run it on Win64 or Win32? Do you have an idea what DLL this is that is missing? You could try "Dependency Walker" which might help to figure that out.