【问题标题】:Missing include when compiling QT with Visual Studio 2010使用 Visual Studio 2010 编译 QT 时缺少包含
【发布时间】:2012-11-29 04:23:18
【问题描述】:

我尝试在 Windows 7、64 位的 Visual Studio 2010 的命令提示符下编译 QT 5.0.0。该过程本身是已知的并描述了herehere。在我的机器上,编译停止是因为编译器没有找到文件:

 fatal error C1083: [..] "GLES2/gl2.h": No such file or directory

我在C:\QTSources 的子目录中发现了丢失的文件 - 我尝试在其中构建源代码的文件夹。

我将INCLUDEPATH += "C:/QTSources/qtwebkit/Source/ThirdParty/ANGLE/include" 行添加到文件qtsdk.pro 中,当我说configure [options] 时,它似乎被qmake 用于生成Makefile。建议这样做here,但它没有帮助。该路径既不会出现在 Makefile 中,也不会出现在对编译器的任何调用中。

如何正确声明我的包含?

【问题讨论】:

  • 我建议在Qt forum 中提出这个问题。
  • 在 Anthony 的建议下,我在 QT 论坛中进行了进一步搜索,这使我找到了 this post 并进一步找到了 this 打开错误报告。
  • Finnfalter,你解决问题了吗?我也有同样的问题...
  • 我并没有真正解决它,Didac。相反,我试图作弊:当我在路径中找到“丢失”文件时,我将文件所在的整个文件夹复制到编译器已知的路径中(我通过查看 -I".." 语句来确定)在命令行的输出中调用编译器)。结果是编译器找到了缺少的包含但链接器缺少相应的库。根据here 你可以自己编译这个库。在实践中,我至今没有成功自己编译。

标签: visual-studio-2010 qt command-line include


【解决方案1】:

您是否尝试查看此链接?

http://qt-project.org/wiki/Building-Qt-5-from-Git

Windows Windows 图形驱动程序

QML2 需要 OpenGL 2.1 或更高版本或 Open GL ES 2.0 才能工作。

在 Windows 中,有两个选项可用:

Use the ANGLE-library [code.google.com] to translate OpenGL calls into DirectX (default)
Use the native OpenGL driver for your graphics card

ANGLE 的副本捆绑在 Qt 5 中。要使用选项 1,您需要 安装 DirectX SDK [msdn.microsoft.com](注意:从 Windows Kit 8,它包含在 Windows SDK 中)。

要使用选项 2,您需要确保您的显卡驱动程序 支持 OpenGL 2.1 或更高版本(注意:仅库存 Windows 驱动程序 支持OpenGL 1.1,不足),通过`-opengl 桌面”来配置.exe。

【讨论】:

  • 谢谢 t3685,我知道这个网站。一个问题是,捆绑包附带的 ANGLE 代码没有在我的机器上编译。同时,我从here单独下载了ANGLE并编译成功。然后我将编译后的源代码放在编译器已知的路径中并享受我的编译。
【解决方案2】:

我遇到了同样的问题,我终于找到了解决方案(唯一的区别是我使用的是 VS 2008,但我使用的是 Windows 7,而且我需要像你一样的 64 位目标)。

主要的问题是你从Qt站点下载的压缩文件不行。您必须使用 Git 存储库中的内容(当前版本为 5.0.1,但与您从下载页面获得的 5.0.1 版本不同)

这就是我所做的,一步一步,完全正确:

先决条件:已安装 git、perl、python 和 ruby​​,您必须检查路径以查看是否可以从任何地方访问可执行文件。在此处搜索下载链接: http://qt-project.org/wiki/Building-Qt-5-from-Git 在“Windows 构建环境”部分下。对于 Git,从这里下载它http://git-scm.com

然后执行以下操作:

转到要安装 Qt 的目录。

git clone git://gitorious.org/qt/qt5.git qt5

cd qt5

perl init-repository --no-webkit

configure -developer-build -opensource -nomake examples -nomake tests

打开一个 Visual Studio x64 Win64 命令提示符,查找它或 VS 2008 你可以执行: %comspec% /k ""c:\Program Files (x86)\Microsoft Visual Studio 9.0\VC\vcvarsall.bat"" amd64

在那个窗口内:

SET CL=/MP

configure -developer-build -opensource -nomake examples -nomake tests -opengl desktop

然后按“y”接受许可条款

nmake

...仅此而已。

原始问题的注释: 你问“我怎样才能正确地声明我的包含?”在你解释了你最终解决它的方式之后:“......我将文件所在的整个文件夹复制到一个路径中编译器知道...”.

您可能更愿意将文件夹保留在其原始位置并在调用 nmake 之前执行以下操作,而不是这样做:

SET CL=/Ic:\MyFolder

请注意,我之前使用过 SET CL=/MP,这是为了通过使用处理器的多个内核来加快构建速度。因此,对于这种情况,您应该这样做:

SET CL=/MP /Ic:\MyFolder

【讨论】:

  • 非常感谢安德烈斯,太好了!
【解决方案3】:

我在尝试使用 vs2012 构建 qt5.0 和 qt5.1 时遇到了同样的问题。通过将参数“-opengl desktop”(不带引号)添加到配置命令并重建(make/nmake/jom/mingw32-make)简单地解决了这个问题。我认为所有其他提到的东西都没有必要解决你原来陈述的问题。

【讨论】:

    【解决方案4】:

    从 VS2008 迁移到 VS2010 (Win7) 时 我有关于“GLES2/gl2.h.”的相同错误消息。

    解决方案是添加

    \include\QtANGLE

    到“AdditionIncludeDirectory”参数 在项目属性中。

    据我所知,QtANGLE 是 opengl 图形库的替代品。

    看来,您不必在 Windows 上从头开始构建 Qt,但您可以使用预编译版本。至少不是因为现在的话题。

    【讨论】:

    • Visual Studio 2012 稍作调整 >> 添加 VC++ 目录的路径 > “包含目录”。
    • 谢谢,它适用于我的 Qt 5.5.1 和 VS2015。有一个加号
    猜你喜欢
    • 2011-05-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-09-27
    • 1970-01-01
    • 1970-01-01
    • 2011-04-28
    • 1970-01-01
    相关资源
    最近更新 更多