【发布时间】:2013-10-31 16:11:46
【问题描述】:
我正在尝试将一个简单的项目迁移到 Qt 5。该项目最初是为 Qt 4 编写的,并且在那里编译得很好。
但是,当使用 Qt 5 编译时,我收到了这个错误:
error: C1083: Cannot open include file: 'ui_mainwindow.h': No such file or directory
现在我知道 ui_mainwindow.h 应该在编译时自动生成,我已经检查过,使用 Qt 5 编译时它没有生成。
注意
这也发生在新创建的项目上。
重现步骤:
- 在 Qt Creator + Qt 4 下创建新项目。
- 将项目复制到另一台安装了 Qt Creator + Qt 5 的机器上。
- 打开项目,修复一些初始错误后会弹出这个。
【问题讨论】:
-
确保您正在添加小部件模块。在你的 .pro 中有这样的东西:
greaterThan(QT_MAJOR_VERSION, 4): QT += widgets -
查看 qmake 生成的 Makefile。您应该会看到与此类似的部分:
compiler_uic_clean: -$(DEL_FILE) ui_mainwindow.h ui_mainwindow.h: ../widgettest/mainwindow.ui /Users/kevin/Development/Qt5.1.1/5.1.1/clang_64/bin/uic ../widgettest/mainwindow.ui -o ui_mainwindow.h它引用的 uic 可执行文件是否确实存在? -
清除您的项目并构建它。你看到
uic被调用了吗?你能发布你的.pro文件吗? -
一个可能的问题是
Clean All或Rebuild All不会删除您的Makefile。尝试手动删除它(或更好:删除整个构建文件夹) -
@GuilhermeBernal 好的,这很奇怪,在我现在删除调试和发布文件夹后它起作用了。但由于我一开始没有将它们复制到另一台机器(使用 Qt 5 的机器)上,这非常非常奇怪为什么它现在有帮助。感谢您的帮助。