VS2013+QT5.9.0 环境下 编译 **.ui 报错


第一次 在 CSDN 上写博客,  记录一下自己的解决这个问题的过程, 以备后续查看


 1.开发环境: VS2013 + QT5.9.0  

 2.问题描述:

      改变  *.ui  的目录结构后,重新编译*.ui ,出现如下警告:

    

     虽然编译成功了,但是并没有生成 ui_DeleteJams.h 文件.

3.解决过程:

    作为QT初学者, 出现问题当然先问度娘啦。 不过遗憾的是,并没有能够解决我这个问题的办法, 找了 N久。不过倒是让我想起了 一点: ui_DeleteJams.h 这个文件的路径我更改过,随后把没有更改路径的MainHMI.ui 重新编译一下,编译成功.  由此证明了 确实 是由路径造成的问题。 

    


       随后 用 Notepad++ 打开 *.vcxproj 文件,里面保留有旧有的路径,随即删掉。并且比对了 两者 CustomBuild  的 编译命令,发现并不一样。

  <CustomBuild Include="HMIModule\NewJamsHMI\DeleteJams.ui">
      <AdditionalInputs Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(QTDIR)\bin\uic.exe;%(AdditionalInputs)</AdditionalInputs>
      <Message Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">Uic%27ing %(Identity)...</Message>
      <Outputs Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">.\GeneratedFiles\ui_%(Filename).h;%(Outputs)</Outputs>
      <Command Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">"$(QTDIR)\bin\uic.exe" -o ".\GeneratedFiles\ui_%(Filename).h" "%(FullPath)"</Command>
      <AdditionalInputs Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(QTDIR)\bin\uic.exe;%(AdditionalInputs)</AdditionalInputs>
      <Message Condition="'$(Configuration)|$(Platform)'=='Release|x64'">Uic%27ing %(Identity)...</Message>
      <Outputs Condition="'$(Configuration)|$(Platform)'=='Release|x64'">.\GeneratedFiles\ui_%(Filename).h;%(Outputs)</Outputs>
      <Command Condition="'$(Configuration)|$(Platform)'=='Release|x64'">"$(QTDIR)\bin\uic.exe" -o ".\GeneratedFiles\ui_%(Filename).h" "%(FullPath)"</Command>
    </CustomBuild>


立即拷贝MainHMI.ui 下的内容到DeleteJams.ui 中,重新编译,编译成功


4.总结

    有时候百度并不是万能的,自己在开发过程中遇到的bug,可以自己先思考一下,使用类似于 "对比分析法",“”代码回退法“ 等 先找到问题产生的根本原因,说不定这个时候问题就可以解决了。有时候在网上捣鼓半天  并没有什么用。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值