qmake不调用uic

伊斯特万·库克林(IstvánKuklin)

我知道在线上有两个类似问题的问题,但不幸的是,正如标题所示,这些问题都没有一个帮助我解决了这个看起来相对简单的问题。

我设置了一个最小的Qt项目,其中出现了问题:

├── main.cpp
├── mainwindow.ui
└── qt.pro

main.cpp:

#include <QtWidgets/QtWidgets>
#include "ui_mainwindow.h"

int main () {
    return 0;
}

qt.pro:

TEMPLATE = app
TARGET = qt-qmake-uic-problem
INCLUDEPATH += .

# Input
FORMS += mainwindow.ui
SOURCES += main.cpp

文件mainwindow.ui是Qt Creator提供的默认MainWindow Form。

现在如果我跑步

qmake qt.pro

然后创建一个Makefile,在执行make时导致此错误:

[developer@kdb qt-qmake-uic-problem]$ make
g++ -c -pipe -O2 -march=i686 -mtune=generic -O2 -pipe -fstack-protector-strong -Wall -W -D_REENTRANT -fPIC -DQT_NO_DEBUG -DQT_GUI_LIB -DQT_CORE_LIB -I. -I. -isystem /usr/include/qt -isystem /usr/include/qt/QtGui -isystem /usr/include/qt/QtCore -I. -I/usr/lib/qt/mkspecs/linux-g++ -o main.o main.cpp
main.cpp:2:28: fatal error: ui_mainwindow.ui: No such file or directory
 #include "ui_mainwindow.h"
                            ^
compilation terminated.
make: *** [Makefile:298: main.o] Error 1

据我所知,ui_mainwindow.h必须由qmake或Makefile生成-而不是由我自己手动调用uic生成。我必须注意,moc也会发生类似的情况,在进行研究时,我也没有在文档或类似问题中找到任何解释,尽管如果qmake的安装被破坏,这很奇怪-我正在运行Arch Linux并从默认存储库中获取了Qt SDK。

非常感谢您的建议!

美联社

假设您正在使用QT-5:

如果要使用链接到QMainWindow或其他QT小部件的UI元素,则通常需要在项目配置中启用小部件:

QT += widgets

然后,这将激活对示例中的mainMS.window.ui之类的FORMS内容的处理,并导致您的代码与正确的库链接。

另请参阅此处:http : //doc.qt.io/qt-5/qtwidgets-index.html

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章