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

相关文章

基于Qt开发一个简单的OFD阅读器

《基于Qt开发一个简单的OFD阅读器》这篇文章主要为大家详细介绍了如何使用Qt框架开发一个功能强大且性能优异的OFD阅读器,文中的示例代码讲解详细,有需要的小伙伴可以参考一下... 目录摘要引言一、OFD文件格式解析二、文档结构解析三、页面渲染四、用户交互五、性能优化六、示例代码七、未来发展方向八、结论摘要

最新版IDEA配置 Tomcat的详细过程

《最新版IDEA配置Tomcat的详细过程》本文介绍如何在IDEA中配置Tomcat服务器,并创建Web项目,首先检查Tomcat是否安装完成,然后在IDEA中创建Web项目并添加Web结构,接着,... 目录配置tomcat第一步,先给项目添加Web结构查看端口号配置tomcat    先检查自己的to

Java汇编源码如何查看环境搭建

《Java汇编源码如何查看环境搭建》:本文主要介绍如何在IntelliJIDEA开发环境中搭建字节码和汇编环境,以便更好地进行代码调优和JVM学习,首先,介绍了如何配置IntelliJIDEA以方... 目录一、简介二、在IDEA开发环境中搭建汇编环境2.1 在IDEA中搭建字节码查看环境2.1.1 搭建步

Linux使用nohup命令在后台运行脚本

《Linux使用nohup命令在后台运行脚本》在Linux或类Unix系统中,后台运行脚本是一项非常实用的技能,尤其适用于需要长时间运行的任务或服务,本文我们来看看如何使用nohup命令在后台... 目录nohup 命令简介基本用法输出重定向& 符号的作用后台进程的特点注意事项实际应用场景长时间运行的任务服

Redis的Hash类型及相关命令小结

《Redis的Hash类型及相关命令小结》edisHash是一种数据结构,用于存储字段和值的映射关系,本文就来介绍一下Redis的Hash类型及相关命令小结,具有一定的参考价值,感兴趣的可以了解一下... 目录HSETHGETHEXISTSHDELHKEYSHVALSHGETALLHMGETHLENHSET

SpringBoot集成SOL链的详细过程

《SpringBoot集成SOL链的详细过程》Solanaj是一个用于与Solana区块链交互的Java库,它为Java开发者提供了一套功能丰富的API,使得在Java环境中可以轻松构建与Solana... 目录一、什么是solanaj?二、Pom依赖三、主要类3.1 RpcClient3.2 Public

Android数据库Room的实际使用过程总结

《Android数据库Room的实际使用过程总结》这篇文章主要给大家介绍了关于Android数据库Room的实际使用过程,详细介绍了如何创建实体类、数据访问对象(DAO)和数据库抽象类,需要的朋友可以... 目录前言一、Room的基本使用1.项目配置2.创建实体类(Entity)3.创建数据访问对象(DAO

SpringBoot整合kaptcha验证码过程(复制粘贴即可用)

《SpringBoot整合kaptcha验证码过程(复制粘贴即可用)》本文介绍了如何在SpringBoot项目中整合Kaptcha验证码实现,通过配置和编写相应的Controller、工具类以及前端页... 目录SpringBoot整合kaptcha验证码程序目录参考有两种方式在springboot中使用k

如何使用 Bash 脚本中的time命令来统计命令执行时间(中英双语)

《如何使用Bash脚本中的time命令来统计命令执行时间(中英双语)》本文介绍了如何在Bash脚本中使用`time`命令来测量命令执行时间,包括`real`、`user`和`sys`三个时间指标,... 使用 Bash 脚本中的 time 命令来统计命令执行时间在日常的开发和运维过程中,性能监控和优化是不

python与QT联合的详细步骤记录

《python与QT联合的详细步骤记录》:本文主要介绍python与QT联合的详细步骤,文章还展示了如何在Python中调用QT的.ui文件来实现GUI界面,并介绍了多窗口的应用,文中通过代码介绍... 目录一、文章简介二、安装pyqt5三、GUI页面设计四、python的使用python文件创建pytho