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)。看了些网上的很多都说是路径有问题,然后看了项目配置文件,里面的自定义编译是
查了下资料这个东西是编译器用的宏,类似环境变量。这个
.vcxproj.user这个文件几乎不会改变的,而之前为了减少git提交导致的冲突就把这个文件列入了忽略列表。引入了qt后,这个文件发生了改变但是没有提交。这个文件定义了重要的
所以综上所述,.vcxproj.user文件通常可以不提交,但是如果自定义了编译器宏的时候就必须要提交了。这个文件的内容非常少,我打开后只有关于
“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学习 第一章:基本对话框
- 使用Shiboken为C++和Qt库创建Python绑定
- Qt 5.6更新至RC版,最终版本近在咫尺
- Qt定时器和随机数详解
- Qt实现图片移动实例(图文教程)
- Qt for Android开发实例教程
- QModelIndex/Role/Model介紹<二>
- Qt Model/View/Delegate浅谈 - QAbstractListModel
- Qt Model/View/Delegate浅谈 - roleNames()
- QT历程(一):与CryptoJs对应的AES加密
- 基于PyQt5的快速开发框架QFramer
- OSX下安装PyQt
- ok6410开发板移植DirectFB手记
- 【笔记】给Qt内嵌一个Chrome吧
- 【算法】最短路径之A*搜索
- qt入门必备
- 在 Qt4 中使用 C++11
- Hello Word ~ v0.2.2 背单词软件发布 -- By WHYPRO
- ubuntu下opencv和qt的安装配置
- linux下opengl的安装(with qt)