赞
踩
而有些时候我们按F5运行后,却出现无法打开包括文件: “ui_XXX.h” 的提示,也就是说包含目录中没有这文件存在。ui_XXX.h文件是xxx.ui文件自动生成的,要解决这个问题就要从xxx.ui文件下手,具体步骤如下:
此问题需要对***.ui文件进行编译才能生成;鼠标右键点击*.ui文件选择编译即可解决这个问题**
有些时候,“编译”按钮是灰色不可选的,此时需要按照以下步骤,更改***.ui文件的部分设置,再进行编译就能解决问题,步骤如下:
1、鼠标右键点击XXX.ui文件,选择属性:
无法编译的ui文件往往在“项类型“”中设置是不参与生成的,如下:
2、将”不参与生成”项更改为“ 自定义生成工具”,并点击“确定”保存设置;
3、 再重新打开XXX.ui的属性,对自定义生成工具的设置项
对其进行如下设置即可,可以看出生成的ui_***.h文件在工作目录下的\GeneratedFiles文件夹内:
参数具体设置如下:
命令行:"$(QTDIR)\bin\uic.exe" -o “.\GeneratedFiles\ui_%(Filename).h” “%(FullPath)”
说明:Uic%27ing %(Identity)…
输出:.\GeneratedFiles\ui_%(Filename).h;%(Outputs)
附加依赖项:$(QTDIR)\bin\uic.exe;%(AdditionalInputs)
链接对象:是
将输出视为内容:否
完成以上设置之后,即可对XXX.ui进行编译,生成ui_XXX.h了。
vs+Qt中除了ui_XXX.h文件有时无法正常生成之外,moc_XXX.cpp文件也会出现无法生成的问题。一般报错如下:
2>XXX.obj : error LNK2001: 无法解析的外部符号 "public: virtual struct QMetaObject const * __cdecl XXX::metaObject(void)const " (?metaObject@XXX@@UEBAPEBUQMetaObject@@XZ)
2>XXX.obj : error LNK2001: 无法解析的外部符号 “public: virtual void * __cdecl XXX::qt_metacast(char const *)” (?qt_metacast@XXX@@UEAAPEAXPEBD@Z)
2>XXX.obj : error LNK2001: 无法解析的外部符号 “public: virtual int __cdecl XXX::qt_metacall(enum QMetaObject::Call,int,void * *)” (?qt_metacall@XXX@@UEAAHW4Call@QMetaObject@@HPEAPEAX@Z)
moc_XXX.cpp文件无法生成往往与XXX.h的设置有关;
该方法与ui_XXX_.h文件解决方法类型,如下:
命令行: “$(QTDIR)\bin\moc.exe” “%(FullPath)” -o “.\GeneratedFiles$(ConfigurationName)\moc_%(Filename).cpp” -DUNICODE -D_UNICODE -DWIN32 -DWIN64 -DQT_DLL -DQT_NO_DEBUG -DNDEBUG -DQT_CORE_LIB -DSCISLDEPTHMEADLG_LIB -DQT_GUI_LIB -DQT_WIDGETS_LIB -D_WINDLL “-I.\GeneratedFiles” “-I.” “-I$(QTDIR)\include” “-I.\GeneratedFiles$(ConfigurationName).” “-IKaTeX parse error: Expected 'EOF', got '\include' at position 8: (QTDIR)\̲i̲n̲c̲l̲u̲d̲e̲\QtCore" "-I(QTDIR)\include\QtGui” “-I$(QTDIR)\include\QtWidgets”
说明: Moc%27ing (Filename).h…
输出: .\GeneratedFiles$(ConfigurationName)\moc_%(Filename).cpp
附加依赖性: KaTeX parse error: Expected 'EOF', got '\bin' at position 8: (QTDIR)\̲b̲i̲n̲\moc.exe;%(Full…(QTDIR)\bin\moc.exe;%(FullPath)
以上设置也可参照正确生成moc文件的.h文件进行设置;
完成以上设置会后,在对xxx.h文件重新编译,可解决问题;
此法用起来更加简单方便一些,小码哥比较推荐使用;
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。