QT5 creator创建项目移植VS2015时一些问题的解决方案(MSB307错误、.ui无法编译)

将QT5项目移植VS2015工程的方案中,我目前体验过的最便捷的一条路线是:

1.利用QT5 Creator创建项目(不需要进行界面设计),得到XXX.h /XXX.cpp /XXX.ui (暂时不需要编译自动生成的ui_XXX.h);

2.复制以上文件到VS工程源码目录下,.ui与头文件目录相同,并进行CMAKE编译、项目生成(.ui文件也会自动加入工程,但无法编译);

3. 设置工程属性使.ui可以正常编译。

以下是过程中可能出现的问题:

1.第二步生成如下MSB307错误。会发现自动编译的ui_XXX.h包含路径由QT工程默认放到了.cpp文件里,将其移动到对应.h文件中,再次生成就会避免此错误。

QT5 creator创建项目移植VS2015时一些问题的解决方案(MSB307错误、.ui无法编译)_第1张图片 QT5 creator创建项目移植VS2015时一些问题的解决方案(MSB307错误、.ui无法编译)_第2张图片

QT5 creator创建项目移植VS2015时一些问题的解决方案(MSB307错误、.ui无法编译)_第3张图片

2.ui文件无法编译

如果在VS中利用QT Designer修改界面设计,需要点击进入.ui文件,之后设计结束后保存、右键.ui文件选择“编译”,之后右键工程选择“重新扫描解决方案”。但刚移植后“编译”按钮是灰色的,这是因为没有为其设置输出选项。

 QT5 creator创建项目移植VS2015时一些问题的解决方案(MSB307错误、.ui无法编译)_第4张图片

此时右键.ui文件选择“属性”,将项类型选为“自定义生成工具”,然后如图依次添加下述四行命令:

"$(QTDIR)\bin\uic.exe" -o ".\PMIAngioIntraFusion3D_ut_autogen\include_Release\ui_%(Filename).h" "%(FullPath)"

Uic%27ing %(Identity)...

.\PMIAngioIntraFusion3D_ut_autogen\include_Release\ui_%(Filename).h;%(Outputs)

$(QTDIR)\bin\uic.exe;%(AdditionalInputs)

链接对象:是

QT5 creator创建项目移植VS2015时一些问题的解决方案(MSB307错误、.ui无法编译)_第5张图片

QT5 creator创建项目移植VS2015时一些问题的解决方案(MSB307错误、.ui无法编译)_第6张图片

之后.ui文件右键->编译;项目右键->重新扫描解决方案即可。

你可能感兴趣的:(qt,c++,开发语言,visual,studio)