我有一个简单的程序。我的程序是:
#include <QApplication>
#include <QLabel>
int main(int argc, char *argv[])
{
int rc ;
QApplication app(argc, argv);
QLabel *label = new QLabel("Hello Qt!");
label->show();
rc = app.exec();
return(rc) ;
}
我想在命令行中编译和构建此代码。我已经安装了qt和mingw.
第一个命令是:
qmake -project
然后我给出这个命令。
qmake
然后qmake创建.pro文件,该文件为:
TEMPLATE = app
TARGET = HELLO
INCLUDEPATH += .
# Input
SOURCES += hello.cpp
我认为这个文件必须包括' QT += widgets',但它没有。我不知道为什么。最后,我调用mingw make
显示错误
当我添加。pro文件QT += widgets然后调用mingw-make,它工作并创建。exe文件。
那么我的问题是,为什么qmake自动添加QT += widgets
,我怎么能做到这一点?我不想手动添加
我该怎么做?我不想手动添加
你可以做以下事情:
1)您可以使用QtCreator并选择基于小部件的应用程序。
2) qmake -project "QT += widgets"
但仅此而已。QMake不是c++代码项目解析器。
另外,请注意,您可以使用greaterThan(QT_MAJOR_VERSION, 4):QT+=widgets
与Qt 4兼容,如果这对您很重要的话,因为小部件是在Qt 4的gui模块中,并且内核和gui是默认添加的。它们被放到Qt 5中自己的widgets模块中。
如果您是Linux用户,您可以编写一个像这样的bash脚本
#!/bin/bash
if [ "$1" == "-project" ]; then
qmake $@ "QT += widgets gui"
else
qmake $@
fi
(在lapp的第2点之后)并将其放在/usr/bin目录中。如果你愿意,你可以将qmake重命名为qmake_old,将脚本重命名为"qmake",然后
#!/bin/bash
if [ "$1" == "-project" ]; then
qmake_old $@ "QT += widgets gui"
else
qmake_old $@
fi
所以你可以调用qmake,它会自动做你想做的(注意别忘了chmod +x)