【发布时间】:2013-04-02 10:31:42
【问题描述】:
在使用“nmake”编译时,有没有办法使用 v110_xp 工具集(而不是默认的“v110”)?
我正在尝试为 VisualStudio2012 编译一个 Qt5 库,我也需要它在 Windows XP 机器上工作。我已经设法使用带有nmake的VS2012编译所有Qt5库,但即使是简单的测试应用程序也无法在XP机器上运行,给我“过程入口点_except_handler4_common不能位于动态链接库msvcrt.dll”。 (在 Windows 7 机器上,我的测试应用程序运行正常)
【问题讨论】:
-
如果您最终依赖于 msvcrt.dll,那么您的 makefile 中就会出现严重问题。最后一个使用它的导入库在 10 年前就消失了。很难猜测这是怎么发生的。
-
Hans Passant 感谢您的评论,但(只是一个例子)官方的 Qt 的 Qt5Core.dll 对 Ole32.dll 有依赖关系,它对 msvcrt.dll 有依赖关系。使用“Dependency Walker”软件(dependencywalker.com)可以清楚地看到这一点 做一些实验并使用“v110_xp”工具集而不是“v110”编译 Qt 真的很好......现在我不确定如何做到这一点,如果这可能的话......
-
它仍然没有意义,v110_xp 肯定不会有所作为。 qt5core.dll 最终依赖于 msvcrt.dll 的唯一方法是使用 mingw 构建它。
-
对不起汉斯,但我不确定我是否同意你关于 msvcrt.dll 的看法。 “过程入口点..”错误是由“d3dcompiler_46.dll”引起的(它也在使用 msvcrt.dll)。这个 d3d 文件根本不能在 XP 机器上工作(仅限 vista/7/8 平台)所以我在配置 Qt 时最终使用了“-opengl desktop”标志。这个错误现在消失了,但我仍然无法在 XP 机器上运行任何 Qt 应用程序。仍在试图找出问题所在...:/我仍然怀疑“v110”平台工具集的东西..
-
是的,微软提供的 DLL 依赖于它。 Qt5core 不是 Microsoft DLL。是的,您不能在 XP 上运行使用 v110 构建的程序,它们需要 v110_xp 工具集。
标签: c++ visual-studio-2012 qt5 nmake