缺少包括在使用Visual Studio 2010编译QT时

Fin*_*ter 5 qt command-line include visual-studio-2010

我尝试在Windows 7,64位的Visual Studio 2010的命令提示符中编译QT 5.0.0.该过程本身是已知的,并在此处此处进行描述.在我的机器上,编译停止,因为编译器找不到文件:

 fatal error C1083: [..] "GLES2/gl2.h": No such file or directory
Run Code Online (Sandbox Code Playgroud)

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

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

我怎样才能正确申报我的包含?

pru*_*nik 16

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

解决方案是添加

\包括\ QtANGLE

到项目属性中的"AdditionIncludeDirectory"参数.

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

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

  • 在Visual Studio 2012中稍作调整>>添加VC++目录>"包含目录"的路径. (2认同)

And*_*tis 5

我有同样的问题,我终于找到了解决方案(唯一的区别是我使用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 Build environment"部分下.对于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
Run Code Online (Sandbox Code Playgroud)

打开一个Visual Studio 64 Win64的命令提示符下,寻找它或VS 2008,你可以执行:%COMSPEC%/ K "" C:\ Program Files文件(x86)的\微软的Visual Studio 9.0\VC\vcvarsall.bat "" AMD64

在那个窗口里面:

SET CL=/MP

configure -developer-build -opensource -nomake examples -nomake tests -opengl desktop
Run Code Online (Sandbox Code Playgroud)

然后按"y"接受许可条款

nmake
Run Code Online (Sandbox Code Playgroud)

...就这样.

请注意原始问题: 您问"我如何正确声明我的包含?" 在你解释了你最终解决它的方式之后:"......我将文件所在的整个文件夹复制到编译器已知的路径中......".

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

SET CL=/Ic:\MyFolder
Run Code Online (Sandbox Code Playgroud)

请注意,之前我使用过SET CL =/MP,这是为了通过使用处理器的多个内核来更快地构建.那么,对于这种情况,你应该这样做:

SET CL=/MP /Ic:\MyFolder
Run Code Online (Sandbox Code Playgroud)