【Qt】【VisualStudio】【错误排除】 VS2015打开Qt的pro项目文件

4 篇文章 0 订阅

 

一、需求:

   环境:VS2015 已经安装了Qt5.10的插件。

   需求:有现成的QCreator生成的pro项目,现在需要用VS + Qt 打开。

二、操作:

   (一) 通过Qt插件直接打开pro项目文件。

      

      输出窗口信息:

--- (Import): Generating new project of printme.pro file
--- (qmake) : Using: D:\Qt\Qt5.10.0\5.10.0\msvc2015\bin\qmake
--- (qmake) : Working Directory: F:\8-专题研究\QWebEngine实现模拟Chrome打印功能\3-Project\printme
--- (qmake) : Arguments: -tp vc "printme.pro" -o "printme.vcxproj" QMAKE_INCDIR_QT=$(QTDIR)\include QMAKE_LIBDIR=$(QTDIR)\lib QMAKE_MOC=$(QTDIR)\bin\moc.exe QMAKE_QMAKE=$(QTDIR)\bin\qmake.exe

[1] - Info: creating stash file F:\8-????\QWebEngine????Chrome????\3-Project\printme\.qmake.stash

--- (Import): Success: 1
--- (qmake) : Exit Code: 0

--- (Import): Added printme.vcxproj to Solution

=== Update uic steps ===

=== 0 uic steps updated. ===


=== Update rcc steps ===
Update rcc step for data.qrc.

=== 1 rcc steps updated. ===

      (二)点击调试

    报错信息:

1>------ 已启动生成: 项目: printme, 配置: Debug Win32 ------
1>  Moc'ing printhandler.h...
1>  Generate moc_predefs.h
1>  Rcc'ing data\data.qrc...
1>  moc_printhandler.cpp
1>GeneratedFiles\Debug\moc_printhandler.cpp : fatal error C1902: 程序数据库管理器不匹配;请检查安装
1>  main.cpp
1>main.cpp : fatal error C1902: 程序数据库管理器不匹配;请检查安装
1>  printhandler.cpp
1>printhandler.cpp : fatal error C1902: 程序数据库管理器不匹配;请检查安装
1>  正在生成代码...
========== 生成: 成功 0 个,失败 1 个,最新 0 个,跳过 0 个 ==========

三、 问题查找:

   (一)   根据调试后报错信息,猜测是.pdb文件(调试数据库文件)有关系。所以应该和项目配置有关系。

      打开项目属性后发现问题:

      VS2015打开pro后,不知道为什么其编译工具默认是VS2012.

    解决:  把其改为VS2015(v140)之后,在点击调试,原本的问题解决了。

   原因分析:其实就是少了平台工具集。

(二)新问题:

1>  printhandler.cpp
1>printhandler.cpp(69): error C2039: “printRequested”: 不是“QWebEnginePage”的成员
1>  d:\qt\qt5.10.0\5.10.0\msvc2015\include\qtwebenginewidgets\qwebenginepage.h(70): note: 参见“QWebEnginePage”的声明
1>printhandler.cpp(69): error C2065: “printRequested”: 未声明的标识符

    点击错误信息,定位到程序中,发现其实就是Qt5.10 的QWebEnginePage 中没有该信号函数printRequested。

 这个信号函数原本是Qt5.12.4的,所以找不到。

       解决: 这个是Qt源代码的问题,只能让VS编译器 添加Qt5.12.4的插件。 

     2019年10月30日 更新

      VS2015  虽然可以装 Qt5.12.4  ,但其中得Qt 没有QWebEngine模块,根本不能用。

      所以,只能装VS2017 + Qt5.12.4。

    但是,程序出现上面提到得:“VS2017打开pro后,不知道为什么其编译工具默认是VS2012.” 

     修改后,报新错误:

    

     报错原因: QWebEnginePage.dll 污染了。

    说很多时候需要调用动态链接库dll的时候,会出现dll污染的情况,比如你安装的某些程序路径中也包含了这个QtCore4的文件,而且人家的路径放在Path靠前的位置,你把Qt官方路径放在最后当然要吃亏的拉......     

   VS编译程序无法定位程序输入点的问题

       所以,修改了环境变量中path 中 Qt5的路径顺序在其他路径的前面。

      【注意】1、 VS2017也要重启才能生效。(不然,还是会一致报同样的错误,哎,都是泪啊) 2、 环境变量也要关闭编辑窗口才生效

 

其他人遇到问题:

   关于使用vs2015打开Qtcreator建的工程.pro文件报错的的解决方案

报错信息:

— (Import): Generating new project of ***.pro file

— (qmake) : Using: D:\QT\QT5.9.1\5.9.1\MSVC2015\bin\qmake
— (qmake) : Working Directory: C:\***\***
— (qmake) : Arguments: -tp vc “***.pro” -recursive QMAKE_INCDIR_QT=$(QTDIR)\include QMAKE_LIBDIR=$(QTDIR)\lib QMAKE_MOC=$(QTDIR)\bin\moc.exe QMAKE_QMAKE=$(QTDIR)\bin\qmake.exe
[1] – Project ERROR: Cannot run compiler ‘cl’. Maybe you forgot to setup the environment?
— (Import): Error(s): 1

— (qmake) : Exit Code: 3
 

   解决方法:

 原因就是QT找不到cl.exe文件,我们的环境变量Path中的目录没有存在这个文件的路径。我们把VS2015的VC/Bin目录添加到环境变量Path中即可解决问题。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值