在 Windows 中从命令提示符运行 QT 应用程序

Posted

技术标签:

【中文标题】在 Windows 中从命令提示符运行 QT 应用程序【英文标题】:Running a QT application from Command promt in WIndows 【发布时间】:2014-01-10 10:20:28 【问题描述】:

我制作了一个小型 QT 应用程序,我正在尝试在 Windows 上通过命令提示符运行它:

#include <QMainWindow>
#include <QLabel>

int main(int argc,char* argv[])

    QMainWindow a(argc,argv)
    QLabel *NewLabel = new QLabel("Hi i am a label");
    NewLabel->show();
    return a.exec();

做完qmake -project 然后qmake -TestPrg.pro 然后我尝试make,在这里失败并出现以下错误:

D:\TestPrg>make
make -f Makefile.Debug
make[1]: Entering directory `D:/TestPrg'
Makefile.Debug:58: *** missing separator.  Stop.
make[1]: Leaving directory `D:/TestPrg'
make: *** [debug] Error 2

如果我们查看makefile.debug,第58行并在“

非常感谢

【问题讨论】:

更可能是 Makefile 中有多个错误。你能用 makefile.debug 更新吗?它抛出的第二个错误是什么? qmake -TestPrg.pro 是错误的。只需使用qmakeqmake TestPrg.pro QMainWindow a(argc,argv) -> 改成 QApplication a(argc, argv) @Laslo 拼写错误,我只使用了 qmake TestPrg.pro。 ####### 隐式规则 .SUFFIXES: .c .cpp .cc .cxx ..cppdebug\.obj:: $(CXX) -c $(CXXFLAGS ) $(INCPATH) -Fodebug\ @ 【参考方案1】:

我刚刚在我的机器上做了一个示例。代码如下,但你至少有几个错误,即:

您使用 QMainWindow 作为应用程序,因为它看起来与 QApplication 相反。这不会编译。

分别需要包含 QApplication 而不是 QMainWindow。

您在 main 函数的第一条语句后漏掉了一个分号。

你在堆上不必要地构造了一个QLabel。在这种特殊情况下,它可能是一个简单的堆栈对象。

您使用调用 qmake 作为qmake -foo 而不仅仅是qmakemake foo

您尝试在 Windows 命令提示符下使用“make”,而不是 nmakejom。如果你使用 Visual Studio 和 MSVC,请不要将其与 mingw、cygwin 和其他东西混合使用。只需使用nmake,否则,是的,对后面的选项使用make。

main.cpp

#include <QApplication>
#include <QLabel>

int main(int argc, char **argv)

    QApplication a(argc, argv);
    QLabel NewLabel("Hi i am a label");
    NewLabel.show();
    return a.exec();

main.pro

TEMPLATE = app
TARGET = main
greaterThan(QT_MAJOR_VERSION, 4): QT += widgets
SOURCES += main.cpp

构建并运行

* qmake
* nmake
* main.exe

【讨论】:

感谢您的反馈,但这是我的命令提示符上使用的内容:D:\TestPrg>qmake -project D:\TestPrg>qmake TestPrg.pro D:\TestPrg>make make -f Makefile.Debug make[1]: 进入目录D:/TestPrg' Makefile.Debug:58: *** missing separator. Stop. make[1]: Leaving directory D:/TestPrg' make: *** [debug] Error 2 @user3156680:请在干净的环境下重试。另外,你没有注意我写的“nmake”注释。 我不能使用 "nmake" ,'nmake' 不是内部或外部命令、可运行程序或批处理文件。 @user3156680:你还没有设置路径。您可以运行 Visual Studio 提示符来解决这个问题,但实际上:您使用的是 MSVC 还是 mingw?你还没说清楚…… 我正在使用 MSVC,在 env 变量中我将 QMAKESPEC 设置为“win 32-msvc.net”。不幸的是,如果我尝试使用 VS2010 命令提示符而不是打开命令提示符窗口,它会打开此文件夹位置“C:\Windows\System32”,我不知道为什么

以上是关于在 Windows 中从命令提示符运行 QT 应用程序的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Windows 10 中从 bash 提示符运行 python '__main__' 程序文件?

如何在 MAC 机器中从命令提示符启动 Appium 服务器?

如何在 Ubuntu 中从控制台运行 Qt Creator?

如何在 Windows 10 中从命令行构建 Visual Studio 2015 vb 解决方案

在 spyder 中从一个提示符运行 pyqt 应用程序两次

在 Qt 中从 dll 创建 WinForm