4

我有一个简单的程序。我的程序是:

 #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 += 小部件然后调用 mingw-make 时,它​​可以工作并创建 .exe 文件。

那么我的问题是,为什么 qmake 会自动添加 QT += widgets,我该怎么做?我不想手动添加。

4

2 回答 2

5

我怎样才能做到这一点?我不想手动添加。

您可以执行以下操作:

1)您可以使用 QtCreator 并选择基于小部件的应用程序。

2) qmake -project "QT += 小部件"

但仅此而已。QMake 不是 C++ 代码项目解析器。

另外,请注意,greaterThan(QT_MAJOR_VERSION, 4):QT+=widgets如果这对您很重要,您可以使用与 Qt 4 兼容,因为小部件位于 Qt 4 的 gui 模块中,并且默认情况下会添加核心和 gui。在 Qt 5 中,它们被放入了自己的小部件模块中。

于 2014-05-17T13:05:33.977 回答
1

如果您是 linux 用户,您可以制作一个像这样的小 bash 脚本

#!/bin/bash
if [ "$1" == "-project" ]; then
 qmake $@ "QT += widgets gui"
else  
 qmake $@
fi

(按照 lpapp 的第 2 点)并将其放在 /usr/bin 目录中。如果需要,可以将 qmake 重命名为 qmake_old 之类的名称,将脚本重命名为“qmake”,然后

#!/bin/bash
if [ "$1" == "-project" ]; then
 qmake_old $@ "QT += widgets gui"
else
 qmake_old $@
fi

因此您通常可以调用 qmake ad 它会自动执行您想要的操作(注意不要忘记 chmod +x )在 ubuntu 14.04 上测试

于 2014-09-03T01:09:03.357 回答