zoukankan      html  css  js  c++  java
  • 使用命令行编译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文件夹路径提最前面就可以;

  • 相关阅读:
    求1+2+…+n, 要求不能使用乘除法、for、while、if、else、switch、case等关键字以及条件判断语句(A?B:C)。
    3,具体例子
    二十八.享元模式
    三十一.设计模式总结创建型模式
    1,学习LinQ
    软件公司需要具备什么能力的大学毕业生?
    二十九.解释器模式
    三十三.设计模式总结行为型模式
    三十二.设计模式总结结构型模式
    三十.访问者模式
  • 原文地址:https://www.cnblogs.com/UnknowCodeMaker/p/11315274.html
Copyright © 2011-2022 走看看