我的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

相关文章

nginx启动命令和默认配置文件的使用

《nginx启动命令和默认配置文件的使用》:本文主要介绍nginx启动命令和默认配置文件的使用,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录常见命令nginx.conf配置文件location匹配规则图片服务器总结常见命令# 默认配置文件启动./nginx

SQLite3命令行工具最佳实践指南

《SQLite3命令行工具最佳实践指南》SQLite3是轻量级嵌入式数据库,无需服务器支持,具备ACID事务与跨平台特性,适用于小型项目和学习,sqlite3.exe作为命令行工具,支持SQL执行、数... 目录1. SQLite3简介和特点2. sqlite3.exe使用概述2.1 sqlite3.exe

基于Python实现一个Windows Tree命令工具

《基于Python实现一个WindowsTree命令工具》今天想要在Windows平台的CMD命令终端窗口中使用像Linux下的tree命令,打印一下目录结构层级树,然而还真有tree命令,但是发现... 目录引言实现代码使用说明可用选项示例用法功能特点添加到环境变量方法一:创建批处理文件并添加到PATH1

canal实现mysql数据同步的详细过程

《canal实现mysql数据同步的详细过程》:本文主要介绍canal实现mysql数据同步的详细过程,本文通过实例图文相结合给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的... 目录1、canal下载2、mysql同步用户创建和授权3、canal admin安装和启动4、canal

MySQL存储过程之循环遍历查询的结果集详解

《MySQL存储过程之循环遍历查询的结果集详解》:本文主要介绍MySQL存储过程之循环遍历查询的结果集,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录前言1. 表结构2. 存储过程3. 关于存储过程的SQL补充总结前言近来碰到这样一个问题:在生产上导入的数据发现

SpringBoot集成LiteFlow实现轻量级工作流引擎的详细过程

《SpringBoot集成LiteFlow实现轻量级工作流引擎的详细过程》LiteFlow是一款专注于逻辑驱动流程编排的轻量级框架,它以组件化方式快速构建和执行业务流程,有效解耦复杂业务逻辑,下面给大... 目录一、基础概念1.1 组件(Component)1.2 规则(Rule)1.3 上下文(Conte

Go学习记录之runtime包深入解析

《Go学习记录之runtime包深入解析》Go语言runtime包管理运行时环境,涵盖goroutine调度、内存分配、垃圾回收、类型信息等核心功能,:本文主要介绍Go学习记录之runtime包的... 目录前言:一、runtime包内容学习1、作用:① Goroutine和并发控制:② 垃圾回收:③ 栈和

python编写朋克风格的天气查询程序

《python编写朋克风格的天气查询程序》这篇文章主要为大家详细介绍了一个基于Python的桌面应用程序,使用了tkinter库来创建图形用户界面并通过requests库调用Open-MeteoAPI... 目录工具介绍工具使用说明python脚本内容如何运行脚本工具介绍这个天气查询工具是一个基于 Pyt

Ubuntu设置程序开机自启动的操作步骤

《Ubuntu设置程序开机自启动的操作步骤》在部署程序到边缘端时,我们总希望可以通电即启动我们写好的程序,本篇博客用以记录如何在ubuntu开机执行某条命令或者某个可执行程序,需要的朋友可以参考下... 目录1、概述2、图形界面设置3、设置为Systemd服务1、概述测试环境:Ubuntu22.04 带图

Spring Boot 整合 Apache Flink 的详细过程

《SpringBoot整合ApacheFlink的详细过程》ApacheFlink是一个高性能的分布式流处理框架,而SpringBoot提供了快速构建企业级应用的能力,下面给大家介绍Spri... 目录Spring Boot 整合 Apache Flink 教程一、背景与目标二、环境准备三、创建项目 & 添