MSYS2下编译带UI的Qt项目:ui_mainwindow.h找不到的解决问询
解决MSYS2下编译Qt项目时ui_mainwindow.h缺失的问题
你遇到的问题是因为Qt的UIC工具没有被触发生成ui_mainwindow.h——这个文件是从你的mainwindow.ui文件自动转换来的,而当前的.pro文件没告诉qmake要处理这个UI文件。
解决方法很简单,在你的.pro文件里添加以下内容:
FORMS += mainwindow.ui
如果mainwindow.ui不在.pro文件所在的同级目录,要写相对路径,比如:
FORMS += ./ui/mainwindow.ui
完整的.pro文件示例
假设你的项目还有main.cpp和MainWindow.cpp,最终的.pro文件应该类似这样:
QT += widgets TARGET = MyQtApp TEMPLATE = app # 头文件 HEADERS += MainWindow.h # 源文件 SOURCES += main.cpp MainWindow.cpp # UI文件,关键就是这行 FORMS += mainwindow.ui
注意事项
- 修改完.pro文件后,必须重新运行
qmake,因为qmake会根据.pro生成新的Makefile,里面会加入UIC工具的编译步骤,确保先生成ui_mainwindow.h再编译依赖它的源文件。 - 确认你的
MainWindow.cpp里是#include "ui_mainwindow.h"(而非带路径的写法),qmake生成的Makefile会把UIC的输出路径加到编译包含目录里,这样编译器就能找到这个自动生成的头文件。
之后再执行mingw32-make就不会报找不到头文件的错误了。
内容的提问来源于stack exchange,提问作者flori10
相关产品推荐
相关产品推荐

