使用 Visual Studio 构建 qt 项目

Posted

技术标签:

【中文标题】使用 Visual Studio 构建 qt 项目【英文标题】:building qt project using visual studio 【发布时间】:2016-01-25 08:09:46 【问题描述】:

我在 Qt creator 中使用 vs2013 编译器构建了一个 Qt 项目 (qwt)。当我打开 .pro 文件并查看我看到的构建步骤时:

qmake: qmake.exe qwt.pro -r -spec win32-msvc2013 制作:C:\qwt-6.1.2 中的 nmake.exe

当我构建项目时,一切正常,项目构建没有错误。到目前为止一切顺利。

但是,当我尝试使用命令行构建此项目时,我在 nmake 步骤中遇到错误。我使用了与上面相同的命令(并且我确定我使用的是相同版本的 qmake/nmake)。

...\QtCore\qglobal.h(38) : fatal error C1083: Cannot open include
file: 'stddef.h': No such file or directory

我的问题是,Qt 做了哪些更多工作以使项目在 Qt creator 中构建而不是从命令提示符中构建?以及如何在命令提示符下复制此行为?我这样做是为了制作一个构建项目的批处理文件(在没有安装 Qt creator 的机器上)。

【问题讨论】:

您是否打开了正常的 cmd 会话?要在命令行上构建 Visual Studio 的东西,您应该执行相应的 vcvars.bat(vcvars32 或 vcvars64)文件来设置环境。或者打开专用的“VS2013 x64 Native Command Promt”快捷方式为您完成此操作 不,我没有。在我执行正确的 .bat 文件后,它起作用了。如果您添加此答案,我可以接受。 【参考方案1】:

为了从命令行使用 Visual Studio 编译环境,您需要调用 vcvars 批处理脚本来正确设置路径。

C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\bin\amd64 文件夹中调用vcvars64.bat(对于VS2013,您可以将“12.0”替换为您拥有的任何Visual Studio 版本)。

C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\bin 文件夹中的vcvars32.bat

或者使用vcvarsall.bat x86vcvarsall.bat x64 调用C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC 中的脚本

或者,Visual Studio 在开始菜单中创建快捷方式,按照VS2013 x64 Native Tools Command Prompt 的行调用这些脚本。

【讨论】:

【参考方案2】:

很可能是Qt Creator在构建环境中添加了额外的变量,当您尝试通过cmd手动编译时不会出现这些变量。

如果您在Qt Creator 中查看Projects 部分下的Build 信息。展开Build Environment 信息并检查其中是否有任何与您的机器全局环境设置不同的内容。

【讨论】:

以上是关于使用 Visual Studio 构建 qt 项目的主要内容,如果未能解决你的问题,请参考以下文章

使用 Cmake 文件在 Visual Studio 中构建 Qt 项目时出现链接错误

Qt - Visual Studio 2013 加载项不会编译项目

如何将 Qt 的 windeployqt 集成为 Visual Studio 构建工作流的一部分?

如何在没有官方支持的情况下使用 Visual Studio 2015 构建 Qt 4.8.6?

Visual Studio 2008 中的 Qt4 - moc-ed 文件从构建中排除?

使用Visual Studio + CMake 构建Qt程序弹出Console控制台