VS2010编译Qt项目找不到ui_xxx.h文件的总结

使用VS2010编译Qt4项目,编译提示找不到ui_xxxxx.h,显然是xxxxx. ui文件没能正常编译。
网上说需要转换一下工程类型,转换为Qt工程:
转为Qt工程
但是我试过了不行,只得在文件的属性里面增加自定义生成工具,右键xxxxx. ui文件:
自定义生成
然后在自定义生成工具中添加Qt的编译命令:
详细生成命令
命令行:

"D:\Qt\4.8.5\bin\uic.exe" -o ".\GeneratedFiles\ui_%(Filename).h" "%(FullPath)"

输出:

.\GeneratedFiles\ui_%(Filename).h;%(Outputs)

附加依赖项:

D:\Qt\4.8.5\bin\uic.exe;%(AdditionalInputs)

这是ui文件的自定义生成命令,如果是Qt类的.h文件:
详细生成命令
命令行:

"D:\Qt\4.8.5\bin\moc.exe"  "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp"  -DUNICODE -DWIN32 -DQT_DLL -DQT_CORE_LIB -DQT_GUI_LIB -DQT_WIDGETS_LIB "-I.\GeneratedFiles" "-I." "-ID:\Qt\4.8.5\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-ID:\Qt\4.8.5\include\QtCore" "-ID:\Qt\4.8.5\include\QtGui" "-ID:\Qt\4.8.5\include\QtWidgets"

输出:

.\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp

附加依赖项:

D:\Qt\4.8.5\bin\moc.exe;%(FullPath)

其实这些自定义命令应该是Qt插件为我们生成好的,不知什么原因没有生成,只能自己动手丰衣足食。
上述更改是解决了问题,但是写法不完善,引用的Qt库都是使用的绝对路径:
绝对路径使用
假如我们版本升级了,或是换了台电脑,Qt的路径或版本变化了:
Qt新版本
像上图,版本变为4.8.6了,再编译刚才的项目又报错了:
编译错误
错误详情:
编译错误详情
总不能换个版本改一次吧。其实安装Qt是有环境变量的,如果没有的话就自己添加一个:
Qt环境变量
然后把刚才填写的自定义命令用环境变量替换,在VS2010中引用环境变量要使用“$(QTDIR)”格式:
使用环境变量
这里注意的是,VS打开Qt工程,一般会生成一个记录Qt版本的文件,名为xxx.vcxproj.user,打开其内容如下:
设置文件
这里面记录的QTDIR版本还是4.8.5,而VS会优先使用这个环境变量,所以我们那样写后可能发现还是4.8.5版本,需要手动把这个文件的QTDIR改为4.8.6,之后再编译就没有问题了。
但是为每个Qt项目都得写一遍带环境变量的库引用也还是挺麻烦的,我们能不能设置一个通用的属性,以后每个项目都可以使用这个配置呢?答案就在“视图->其他窗口->属性管理器”中:
属性管理器页面
在属性管理器中添加一个为Qt项目设置的通用配置:
通用配置属性
这样以后的项目都可以添加这个属性配置,从而免去每次都配置一遍Qt的相关属性。

  • 3
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值