msbuild编译qt界面文件出现Moc'ing文件,系统找不到指定路径问题

这几天link引入了qt,开发都没问题,但是jenkins上用msbuild总是编译失败,原因是
“Moc’ing xxx文件,系统找不到指定路径”
在jenkins服务器上直接用msbuild也是失败,但是在jenkins服务器上用vs打开项目编译过一次就好了。但是jenkins每次的编译时最好都清理一遍。所以这个问题还是没彻底解决。

今天花了些时间研究了一下这个问题,最后发现是少上传了一个文件导致的。

首先从现象看是没找到moc文件(qt有个编译工具叫moc)。看了些网上的很多都说是路径有问题,然后看了项目配置文件,里面的自定义编译是“$(QTDIR)\bin\moc.exe”,和网上的解决方案是一致的,然后就怀疑是否是$(QTDIR)的问题。
查了下资料这个东西是编译器用的宏,类似环境变量。这个$(QTDIR)显然不是自带的,看了下最后发现它是定义在.vcxproj.user文件中的。
.vcxproj.user这个文件几乎不会改变的,而之前为了减少git提交导致的冲突就把这个文件列入了忽略列表。引入了qt后,这个文件发生了改变但是没有提交。这个文件定义了重要的$(QTDIR),没有了这个宏定义就编译失败了。而之前用vs打开后会自动重新生成这个文件,所以就可以编译了。

所以综上所述,.vcxproj.user文件通常可以不提交,但是如果自定义了编译器宏的时候就必须要提交了。这个文件的内容非常少,我打开后只有关于$(QTDIR)的定义,所以是否需要提交只要打开看一下就可以立刻知道。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值