使用nmake构建静态版qt

Posted

技术标签:

【中文标题】使用nmake构建静态版qt【英文标题】:using nmake to build a static version qt 【发布时间】:2013-10-03 01:18:26 【问题描述】:

我想使用 microsoft visual studio 构建一个静态版本的 qt 5.1.1。我执行了configure -static -release -platform win32-msvc,然后我执行了nmake,但是出现了这些错误:

c:\qt\qtbase\include\qtgui\../../src/gui/opengl/qopengl.h(82) : fatal error C108
3: Cannot open include file: 'GLES2/gl2.h': No such file or directory
qopenglcontext.cpp
c:\qt\qtbase\include\qtgui\../../src/gui/opengl/qopengl.h(82) : fatal error C108
3: Cannot open include file: 'GLES2/gl2.h': No such file or directory
Generating Code...
NMAKE : fatal error U1077: '"c:\Program Files (x86)\Microsoft Visual Studio 10.0
\VC\BIN\cl.EXE"' : return code '0x2'
Stop.
NMAKE : fatal error U1077: '"c:\Program Files (x86)\Microsoft Visual Studio 10.0
\VC\BIN\nmake.exe"' : return code '0x2'
Stop.
NMAKE : fatal error U1077: 'cd' : return code '0x2'
Stop.
NMAKE : fatal error U1077: 'cd' : return code '0x2'
Stop.
NMAKE : fatal error U1077: 'cd' : return code '0x2'
Stop.

最后目录中没有 qmake.exe 文件。有什么问题?

【问题讨论】:

【参考方案1】:

在 Windows 上,您必须执行以下两项操作之一:

    提供system OpenGL implementation 的包含和库路径。这仅在您打算以 Windows XP 为目标时才有意义,因为 ANGLE 由于某种原因在该系统中不起作用。

    使用在 DirectX 之上运行的 OpenGL 捆绑 ANGLE 实现。将 -angle 参数添加到配置命令行。在使用 ANGLE 构建 Qt 之前,您必须安装 DirectX SDK

我建议在平台内提供明确的 Visual Studio 版本。例如,对于 VS2010,使用-platform win32-msvc2010。无论如何,您对 Qt 5 的选择只有 2008、2010 或 2012、2013、2015。

您也可以从使用jom 代替 nmake 中受益。它会尽量让你的所有核心都被占用,它肯定会在多核机器上更快地构建 Qt。 Jom 是一个临时替代品,无需更改任何内容。这是对 nmake 的并行重新实现。

【讨论】:

【参考方案2】:

您正在编译OpenGL ES 版本的Qt。要在桌面上使用,您应该传递给configure "-opengl desktop" 参数。

【讨论】:

执行configure时出现此错误:WARNING: ANGLE specified, but the DirectX SDK could not be detected: There is no Direct X SDK installed or the environment variable "DXSDK_DIR" is not set.构建很可能会失败。

以上是关于使用nmake构建静态版qt的主要内容,如果未能解决你的问题,请参考以下文章

NMAKE 静态链接错误

如何使用正确分发的发行版 pdb 文件构建 Qt5

使用 nmake 为 VS2010 构建 Qt 返回链接错误

Qt .pro 转换为 nmake Makefiles 无法处理静态库,在 VS2008 解决方案中同样有效

nmake:是不是可以禁用编译警告?

使用 Visual Studio 构建 qt 项目