【发布时间】:2018-07-17 12:36:53
【问题描述】:
我正在编译执行数字密集型计算的科学代码。我的流程如下:
针对 CPU 的代码由英特尔 C++ 编译器编译
针对 GPU 的代码由 NVCC 编译
然后使用英特尔 C++ 编译器链接目标文件
为此,我编写了一个 makefile 来执行必要的步骤,并且一切都在命令行上进行。现在,我希望在程序中添加一个 GUI,使用 Qt,但不使用 Qt Creator。作为测试,我正在尝试编译此处给出的“Hello World!桌面应用程序”:https://wiki.qt.io/Getting_Started_on_the_Commandline
我的解释如下:
#include <QtGui\QtGui>
#include <QtWidgets\QApplication>
#include <QtWidgets\QLabel>
void test_qt()
{
QApplication app();
QLabel label("Hello, world!");
label.show();
app.exec();
}
我在 main.cpp 文件中调用该函数。在我的 makefile 中,我与 Qt5core.lib、Qt5Gui.lib 和 Qt5Widgets.lib 链接,并且根据 makefile 规则,这是使用英特尔 C++ 编译器编译的。但是,它给出了以下错误:
error: expression must have class type
app.exec();
^
我的问题如下: 如何编辑我的 makefile 来编译 Qt 代码?我将需要信号和插槽,因此根据Can I use Qt without qmake or Qt Creator? 可能需要 moc,但我不会使用 uic。
【问题讨论】:
-
QApplication app();- 这是一个函数声明。 -
您可能想要启用一些编译器警告