我的QT Creator学习笔记(三)——程序源码与命令编译过程学习(在命令行编译程序)

本文主要是介绍我的QT Creator学习笔记(三)——程序源码与命令编译过程学习(在命令行编译程序),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

      参考文献:《Qt Creator 快速入门》第三版 霍亚飞编著

前面的学习笔记我的QT Creator学习笔记(一)-——环境配置与HelloWorld项目中讲了如何用qt Creator创建一个项目,并编译运行。步骤很简单,是因为qt Creator帮我们做了很多工作。

     今天从源码编写、命令行编译程序,来学习Qt Creator内部是怎么帮我编译程序的。

一、新建工程目录

       在我们存放工程的文件夹下创建helloworld1文件夹,新建文本文档,输入以下代码,代码意义见注释,保存位main.cpp文件,注意编码格式位utf-8

#include <QApplication>//包含应用程序需要的头文件
#include <QDialog>//包含对话框类头文件
#include <QLabel>//包含label控件头文件
int main(int argc,char* argv[])//定义main函数
{QApplication a(argc,argv);//创建应用程序对象QDialog w;//创建对话框对象w.resize(400,300);//设置对话框的大小QLabel label(&w);//创建文本标签对象,文本标签的父窗口是上面创建的对话框label.move(120,120);//设置文本标签位置label.setText(QObject::tr("明天你好"));//设置文本标签显示内容,QObject::tr是为了多语言支持w.show();//显示对话框return a.exec();//让应用程序对象进入事件循环
}
 

 

二、使用命令行编译程序

配置qt 所需环境,qtenv2.bat文件,我的是在 C:\Qt\Qt5.7.1\5.7\msvc2013_64\bin\qtenv2.bat,在命令窗口运行,或者双击运行。这里其实就是配置一些环境变量,也可以手动配置。

我在学习这一块时配到很多问题,一般都是环境变量没配好,如果遇到“xx不是可执行命令或批处理文件的命令,看一下下面这几个环境变量是否配置了”

 

2、从开始菜单打开Qt 5.7 64-bit  for DeskTop(MSVC2013)

 2、使用vcvarsall.bat设置命令行编译环境

这里有个提示 "Remember to call vcvarsall.bat to complete environment setup!"因为我的qt是64位的,所以参数是amd64(这个参数很重要不然后面会包编译机器和目标机器冲突的错误)

3、执行qmake -project命令来生产与平台无关的.pro工程文件

4、编辑.pro文件

使用记事本打开helloworld1.pro文件在最后加上,greaterThan(QT_MAJOR_VERSION,4):QT +=widgets这行代码的以上是当Qt版本大于4时,则需要添加widgets模块。因为我们main函数中用到的那几个类,都包含在这个模块中。

5、使用qmake helloworld1.pro -spec win32-msvc2013命令生成用于编译的Makefile文件,Makefile文件与平台相关,包含了要创建的目标文件或可执行文件、创建目标文件所依赖的文件和创建每个目标文件时要运行的命令等信息。

 

6、jom命令编译程序,生成可执行文件

jom命令就是通过读入Makefile文件来进行编译工作的。

默认是编译release文件,如果要生成debug可执行文件,使用jom -f Makefile.debug

6、使用windeployqt release 命令把运行.exe所依赖的文件拷贝过来,双击exe运行

 

 

 

 

 

 

这篇关于我的QT Creator学习笔记(三)——程序源码与命令编译过程学习(在命令行编译程序)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/556720

相关文章

Java进程异常故障定位及排查过程

《Java进程异常故障定位及排查过程》:本文主要介绍Java进程异常故障定位及排查过程,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、故障发现与初步判断1. 监控系统告警2. 日志初步分析二、核心排查工具与步骤1. 进程状态检查2. CPU 飙升问题3. 内存

Qt QCustomPlot库简介(最新推荐)

《QtQCustomPlot库简介(最新推荐)》QCustomPlot是一款基于Qt的高性能C++绘图库,专为二维数据可视化设计,它具有轻量级、实时处理百万级数据和多图层支持等特点,适用于科学计算、... 目录核心特性概览核心组件解析1.绘图核心 (QCustomPlot类)2.数据容器 (QCPDataC

SpringBoot整合liteflow的详细过程

《SpringBoot整合liteflow的详细过程》:本文主要介绍SpringBoot整合liteflow的详细过程,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋...  liteflow 是什么? 能做什么?总之一句话:能帮你规范写代码逻辑 ,编排并解耦业务逻辑,代码

Java中调用数据库存储过程的示例代码

《Java中调用数据库存储过程的示例代码》本文介绍Java通过JDBC调用数据库存储过程的方法,涵盖参数类型、执行步骤及数据库差异,需注意异常处理与资源管理,以优化性能并实现复杂业务逻辑,感兴趣的朋友... 目录一、存储过程概述二、Java调用存储过程的基本javascript步骤三、Java调用存储过程示

Visual Studio 2022 编译C++20代码的图文步骤

《VisualStudio2022编译C++20代码的图文步骤》在VisualStudio中启用C++20import功能,需设置语言标准为ISOC++20,开启扫描源查找模块依赖及实验性标... 默认创建Visual Studio桌面控制台项目代码包含C++20的import方法。右键项目的属性:

MySQL中的InnoDB单表访问过程

《MySQL中的InnoDB单表访问过程》:本文主要介绍MySQL中的InnoDB单表访问过程,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录1、背景2、环境3、访问类型【1】const【2】ref【3】ref_or_null【4】range【5】index【6】

浏览器插件cursor实现自动注册、续杯的详细过程

《浏览器插件cursor实现自动注册、续杯的详细过程》Cursor简易注册助手脚本通过自动化邮箱填写和验证码获取流程,大大简化了Cursor的注册过程,它不仅提高了注册效率,还通过友好的用户界面和详细... 目录前言功能概述使用方法安装脚本使用流程邮箱输入页面验证码页面实战演示技术实现核心功能实现1. 随机

sqlite3 命令行工具使用指南

《sqlite3命令行工具使用指南》本文系统介绍sqlite3CLI的启动、数据库操作、元数据查询、数据导入导出及输出格式化命令,涵盖文件管理、备份恢复、性能统计等实用功能,并说明命令分类、SQL语... 目录一、启动与退出二、数据库与文件操作三、元数据查询四、数据操作与导入导出五、查询输出格式化六、实用功

postgresql数据库基本操作及命令详解

《postgresql数据库基本操作及命令详解》本文介绍了PostgreSQL数据库的基础操作,包括连接、创建、查看数据库,表的增删改查、索引管理、备份恢复及退出命令,适用于数据库管理和开发实践,感兴... 目录1. 连接 PostgreSQL 数据库2. 创建数据库3. 查看当前数据库4. 查看所有数据库

Navicat数据表的数据添加,删除及使用sql完成数据的添加过程

《Navicat数据表的数据添加,删除及使用sql完成数据的添加过程》:本文主要介绍Navicat数据表的数据添加,删除及使用sql完成数据的添加过程,具有很好的参考价值,希望对大家有所帮助,如有... 目录Navicat数据表数据添加,删除及使用sql完成数据添加选中操作的表则出现如下界面,查看左下角从左