为msvc2015构建QT - 并获得工作项目?

时间:2015-10-07 15:36:58

标签: c++ visual-studio qt visual-studio-2015 qt5

这里已经有一个非常相关的question (rq),但它不够专业,我的声誉不够高,无法在评论中提出更多建议......但是,时间在流逝,我已经有了去某个地方。 一旦回答了原始问题,就可以而且应该删除这个问题。

我想要的是什么:使用qt-library在Visual Studio 2015中工作。就是这样。

我做了什么:

  • 安装vs2015,正常工作
  • 下载qt5.5.0源码,使用(rq)按照jom指令构建它(nmake工作原理相同,只是速度较慢)
  • 也在(rq)
  • 之后安装vs2015的qt包扩展程序

第一个错误:构建过程没有创建任何mkspecs,因此我无法在visual studio中的QT选项中设置目录:“此QT版本使用不受支持的makefile生成器(使用:,支持:MSVN.NET,MSBUILD)“

  • 我试图通过将其替换为已安装版本的mkspec文件夹来破解,我可以在Qt选项中选择qtbase文件夹。
  • 使用了库目录,包含目录和VS-Project的附加依赖项。无论我做了什么,包含文件都找不到。

由于这没有用,我用安装程序安装了qt 5.5.0 mingw492_32。使用它我可以用QTCreator创建一个新项目。它在QTCreator中编译。之后我执行了

qmake -platform win32-msvc2015 -tp vs

将项目转换为Visual-Studio项目,而qmake是以前的BUILT版本的可执行文件,而不是已安装的版本,在visual studio中仍然找不到包含文件。

我做错了什么?在转换后的项目中,库目录,包含目录和附加依赖项对我来说很好。

编辑1: 我跟着walkthrough,一切都成功了。然而,mkspecs文件夹仍然是空的。使用Qt Creator创建Qt-Widget应用程序会在崩溃的应用程序中结束(不对默认代码进行任何更改):

Second Chance Assertion Failed: File minkernel\crts\ucrt\src\appcrt\heap\debug_heap.cpp, Line 980

调用

qmake -platform win32-msvc2015 -tp vs

也不成功:

qmake -platform win32-msvc2015 -tp vs
WARNING: Unable to generate output for: D:/_Daten/_Studium/Bachelor-Thesis/Visual-Studio/VISAR-FSA/GuiTest/Makefile.Debug [TEMPLATE vsapp]
WARNING: Unable to generate output for: D:/_Daten/_Studium/Bachelor-Thesis/Visual-Studio/VISAR-FSA/GuiTest/Makefile.Release [TEMPLATE vsapp]

编辑2:

关于mkspecs:结果我不得不同时打电话:

jom -j 8
jom install

现在创建了所有mkspec。官方文档让我觉得第二个只是在设置目标路径时构建的选项。 然而,Qt Creator中新创建的Qt Widget应用程序,包含已构建和安装的QT版本以及正确的编译器,仍然无法编译。 LNK2019发生在[qtmain.lib(qtmain_win.obj)]中,告诉我在函数“_WinMain @ 16”中有一个符号“__imp__CommandLineToArgvW @ 8”的链接,但未解析。

2 个答案:

答案 0 :(得分:1)

答案 1 :(得分:1)

我为VS2015以及VS2013构建了Qt,并且对于5.50以后它不需要任何特别特别的东西来使它成功构建。我倾向于使用@ jafar提到的演练的简化版本(并且更接近official docs'中的方法)

  • 克隆qt5存储库或解压缩源
  • 启动命令提示符。 重要:创建正确的' VS2015 x86或x64'提示
  • DON' T 编辑演练中提到的msvc-desktop.conf。 (Qt不能使用/ MT标志构建)
  • 运行configure:

    configure -debug-and-release -opensource -platform win32-msvc2015 -opengl desktop -nomake examples -nomake tests

  • 使用jom -j 8构建(我发现你的回报越来越低)或nmake。如果省略示例和测试,我可以在大约10-15分钟内构建整个qtbase

  • 运行jom installnmake install