您的位置:首页 > 产品设计 > UI/UE

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

2016-07-14 20:44 751 查看
这几天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)
的定义,所以是否需要提交只要打开看一下就可以立刻知道。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  qt msbuild visual studio