使用命令行编译Qt程序

 

下载Qt

在Qt的官网上必须得登陆才能下载,这让我倍感烦躁,于是百度下找到这个链接http://download.qt.io/archive/qt/进入无需登陆即可下载,还能选择一些历史版本,因为我装了VS2015,所以我选择支持MSVC2015编译套件
的Qt:
20190806202133.png
上面两个都要安装,一个用来生成32位程序,另一个用来生成64位程序

从命令行编译Qt程序

新建一个文本文件,将其后缀改成.cpp,然后将下面代码写入其中:

#include<QApplication>
#include<QLabel>

int main(int argc, char*argv[])
{
  QApplication app(argc,argv);
  QLabel * label = new QLabel("Hello Qt!");
  label->show();
  return app.exec();
}

在两个版本的Qt安装完成后,在开始菜单可以找到Qt提供的命令行工具:
20190806205334.png
一个32位的,用来生成32位的Qt程序;一个64位的,用来生成64位的Qt程序;这里我选择32位的Qt命令行工具:
20190807140106.png
这里-o参数指明了生成工程文件的名称,如果不使用-o参数指明,默认名称为当前文件夹的名称,执行qmake -project
后将生成一个后缀为.pro的工程文件,然后在执行qmake 工程文件名称.pro 命令后就生成了Makefile文件,
安装VS2015后也会有命令行工具:
20190806220732.png
因为我要生成的是32位程序,所以要使用生成32位程序的VS命令行工具来编译源码:
20190807140428.png
找不到文件,这是因为从Qt4到Qt5一些基础类模块发生了变化,Qt也给出了解决方案:
https://wiki.qt.io/Transition_from_Qt_4.x_to_Qt5
我们在工程文件中直接加入一行"QT+=widgets",或者在生成工程文件时在qmake命令后面加上这行也行:
20190807141345.png
然后在用VS的命令行工具执行nmake Debug Release同时编译调试版和发布版程序:
20190807141621.png
 
注意:

  • 不要在Qt的命令行中执行nmake命令,编译时会有下面奇怪的错误:
    20190807141904.png

  • 不要使用生成64位程序的VS命令行工具去编译32位Qt命令行生成的Makefile,否则链接时会报错:
    20190807143054.png
    也不要用生成32位程序的VS命令行工具去编译64位Qt命令行生成的Makefile,否则链接时会报:
    模块计算机类型“X64”与目标计算机类型“x86”冲突错误

    执行nmake命令后,release和debug文件夹中会有可执行文件:
    20190807144008.png
    双击即可运行

    如果运行时提示缺失Qtxxxxx.dll则需要把Qt安装目录下的bin文件夹路径添加到系统环境变量PATH中即可
    我这里安装了32位和64位两个版本的qt,如果程序运行时报:
    20190807144256.png
    一般32位程序加载64位的依赖库,或者64位程序加载32位的依赖库时会报错;Qt的依赖库在其安装目录下的bin
    文件夹下,如果当前是32位程序报这个错误时,只需要把32位Qt安装目录下的bin文件夹路径提最前面就行,
    如果当前是64位程序报这个错误时,只需要把64位Qt安装目录下的bin文件夹路径提最前面就可以;

 

posted @ 2019-08-07 14:56  CodeMaker+  阅读(2100)  评论(0编辑  收藏  举报