欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

在命令行提示符窗口中编译运行qt程序

程序员文章站 2022-06-05 16:44:50
...

在命令行提示符窗口中编译运行qt程序

本博文主要内容

  • 编译过程中使用的几个重要的命令
  • 在编译运行过程中碰到的几个常见问题及其解决方法

一、环境及源码

QT版本:QT 5.6(自带QT Creater 4.0.3)
选择编译运行的quit.cpp文件内容如下:

#include <QApplication>
#include <QPushButton>

int main(int argc, char *argv[])
{
    QApplication app(argc, argv);
    QPushButton *button = new QPushButton("Quit");
    QObject::connect(button, SIGNAL(clicked()),
                     &app, SLOT(quit()));
    button->show();
    return app.exec();
}

二、命令编辑

打开qt的命令行提示符程序窗口

在命令行提示符窗口中编译运行qt程序

然后进入quit.cpp文件所在的目录下。
- 使用qmake –project命令生成工程文件(.pro文件);
- qmake xxx.pro命令生成Makefile文件(包括Makefile, Makefile.Debug和Makefile.Release)以及两个空的文件夹(debug和release);
- mingw32-make命令生成可执行.exe文件.(默认生成Debug或者Release下的可执行文件)

在命令行提示符窗口中编译运行qt程序

其他命令:
mingw32-make -f Makefile.Debug 生成相应的debug下的可执行文件
mingw32-make -f Makefile.Release 生成相应的release下的可执行文件

三、遇到的问题及对应的解决方法

1、使用mingw32-make命令时,无法生成可执行文件,显示QApplication:No such file or directory。

在命令行提示符窗口中编译运行qt程序

解决方法
修改工程文件即quit.pro文件,添加划线部分内容:

在命令行提示符窗口中编译运行qt程序

若还是无法编译成功再检查系统变量的设置:
在qt4的版本中,使用QT进行命令行编译,必须要进行系统环境变量配置,否则无法使用相应的qmake,make等命令,并且要链接到编译程序时所需要的头文件和库文件。但是在qt5.6版本(qt5的其他版本没有测试过)中,命令行提示符程序启动后会自动调用qt安装目录下的批处理文件qtenv2.bat设置环境变量,包括qmake和mingw32-make命令的目录,就无需自己再设置环境变量。

在path变量中添加两个路径
D:\Qt\Qt5.6.2\5.6\mingw49_32\bin;
D:\Qt\Qt5.6.2\Tools\mingw492_32\bin
新建一个系统变量QMAKESPEC,变量值为win32-g++(目前未发现该系统变量的作用,不添加的话也不影响程序的运行)

2、直接点击可执行的.exe文件无法执行,错误显示无法启动此程序,因为计算机中丢失Qt5Core.dll。

在命令行提示符窗口中编译运行qt程序

解决方法
出现这个问题是因为运行程序无法找到对应的dll文件。一种解决方法是到qt的安装目录下找到相应的dll文件并复制到当前项目的release(或者debug)文件夹中。另一种是按上述问题1的解决方法设置系统环境变量。

3、系统环境变量设置好后点击.exe可执行文件显示错误:无法定位程序输入点xxx于动态链接库上。

在命令行提示符窗口中编译运行qt程序

解决方法
发生该错误的可能原因是之前安装过类似的编译器(mingW编译器)并且在系统变量path中已经有它的路径存在,如下
在命令行提示符窗口中编译运行qt程序
只需要删除该冲突的编译器在系统变量path中的路径值就可以了。

四、编译运行结果

1、在qt的命令行提示符窗口中编译成功并运行的结果

在命令行提示符窗口中编译运行qt程序

2、直接在windows的命令行提示符程序窗口中运行(要在系统的命令提示符程序窗口中运行必须要设置上述环境变量,否则出现上述的第二个问题)

在命令行提示符窗口中编译运行qt程序

参考:Qt怎样采用命令行提示符程序进行程序编译