前置知识

C++程序执行过程:

预处理:对源程序进行宏代替,条件编译,头文件展开,去除注释;

编译:词法分析、语法分析,语义分析以及优化后产生汇编代码文件;(编译器)

汇编:将汇编代码翻译成机器指令的过程,得到目标文件,windows下是.obj目标文件,Linux下是.o目标文件;

链接:将所有相关文件(库文件,源文件等)链接到一起生成可执行的二进制文件(.exe)。

以gcc为例的指令:

预处理:g++ -E test.cpp -o test.i

编译:g++ -S test.i -o test.s

汇编:g++ -c test.s -o test.o

链接:g++ test.o -o test.exe

一般情况,可以直接使用g++ test.cpp -o test就可以生成可执行程序。

常见编译器:

GUN Compiler Collection(GCC) GC,是大多数类Unix(如Linux、BSD、Mac OS X等)的标准编译器,Windows下的编译环境MingW的核心组成是GCC;

Microsoft C(MS C/MSVC),微软Windows平台Visual Studio自带的C/C++编译器;

Borland Turbo C(Turbo C)

1.依赖库

1.1 Qt库

Qt基本模块:提供Qt在所有平台上的基本功能。

Qt附件模块:实现一些特定功能的提供附加价值的模块。

增值模块:单独发布的提供额外价值的模块或工具。

技术预览模块:一些处于开发阶段,但是可以作为技术预览使用的模块。

Qt工具:帮助应用程序开发的一些工具。

参考:https://www.cnblogs.com/deng-c-q/p/11475422.html

1.2第三方库

示例:添加ffmpeg库

在.pro文件中添加:

INCLUDEPATH += $$PWD/ffmpeg/include  //头文件包含目录

LIBS += -L$$PWD/ffmpeg/lib/ -lavcodec -l avdevice -lavfilter -lavformat   //-L库文件目录 -l库文件

DEPENDPATH += $$PWD/ffmpeg/lib   //lib库目录

2.构建套件(kit)

(工具-选项-构建和运行-构建套件(Kit))

包含众多构建时会用到的工具的工具箱。

Qt version:构建时使用的qmake的版本。QMake可以用于生成Makefile以及各种工程文件,还可以生成VS可以使用的项目文件等。它可以自动解决依赖关系,不用手工写Makefile。而且它是跨平台的。

地址:qt安装目录的bin文件夹下的qmake.exe

编译器:编译C++语言。例入MinGW中的g++,VS中的msvc。

地址:MinGW安装路径下的g++.exe

注:如果你安装的是MinGW版本的qt,那就选择MinGW中的g++。如果是msvc版本的qt,那就选择vs下的msvc。MinGW版本和msvc版本的qt是不互通的,所有要选择对应版本编译器。

Debugger:调试器,有cdb,gdb等。

与编译器一致即可,g++则用gdb,msvc则用cdb。

地址:MinGW安装路径下的gdb.exe

CMake:一个跨平台的安装(编译)工具(这点类似QMake),可以用简单的语句来描述所有平台的安装(编译过程)。

组合套件:选择构建套件(Kit)页,点击添加,然后设置套件名称,按照上述配置顺序添加工具,其他默认即可。

参考链接:https://blog.csdn.net/LUCYcanFire/article/details/126402240

3.版本控制

工具-选项-版本控制:添加git配置:

附加在系统PATH之前:git安装目录的bin文件夹路径

参考链接:https://blog.csdn.net/hebbely/article/details/52495073

4.项目详情

项目工程基类:https://www.cnblogs.com/yadira/p/16663502.html

项目结构概述:

  • qtTest.pro:qmake的工程文件,qmake使用.pro文件生成makefile文件。
  • 头文件:存放项目内所有的头文件*.h。
  • 源文件:存放项目内的所有 C++源码文件*.cpp。
  • 界面文件:存放项目内所有界面文件*.ui。

5.qmake/构建/运行/清除

一个工程编译连接规则是放于Makefile文件中的,qmake是用于在qtcreate下生成Makefile文件的工具,makefile用于描述了整个工程的编译、源码与源码之间如何关联、依赖连接等规则,构建就是按照Makefile定义的规则进行编译生成exe文件,运行就是直接运行exe文件,清除只留下exe文件。

名词解释:

  • Makefile文件描述了整个工程的编译、连接等规则。其中包括:工程中的哪些源文件需要编译以及如何编译、编译顺序,需要创建那些库文件以及如何创建这些库文件、如何最后产生我们想要的可执行文件。
  • make是一个命令工具,是一个解释makefile中指令的命令工具。Makefile(在其它的系统上可能是另外的文件名)在绝大多数的IDE 开发环境中都在使用,已经成为一种工程的编译方法。
  • qmake一个协助简化跨平台开发的构建过程 的工具,Qt附带的工具之一。qmake能够自动生成 Makefile、Microsoft Visual Studio 专案文件 和 xcode 专案文件。不管源代码是否是用Qt写的,都能使用qmake,因此qmake能用于很多软件的构建过程。qmake会根据专案文件(.pro)里面的信息自动生成适合平台的 Makefile。qmake包含额外的功能来方便 Qt 开发,如自动的包含moc 和 uic 的编译规则。

Qt Creator中执行项目的流程:

Qmake:

  • qmake:根据之前项目指南创建的项目文件.pro,并且运行qmake[qmake xx.pro]。
  • 生成调试[build-ttt-4_8_6-Debug] 或者发布[build-ttt-4_8_6-Release]目录(这个是影子构建产生的目录),里面含有qmake后生成的Makefile,但此时还未生成.exe。
  • 简单来说对项目qmake操作会重新生成或更新构建目录中的Makefile文件(Makefile文件定义了编译器编译生成exe文件的规则)。

构建:

  • 构建:构建就是编译项目,普通构建是增量编译,只编译有变动部分,同时生成.exe文件,还有许多.o目标文件。
  • 重新构建:把所有部分都重新编译。
  • 构建和重新构建时如果没有Makefile,会根据.pro文件等生成Makefile后再编译,最后生成.exe,还有许多.o目标文件。

运行:

  • 运行就是直接运行生成好的.exe文件 ,如果有改动则根据已有的Makefile进行重新编译、执行,否则就直接运行已有的.exe文件。

清除:

  • 清理项目,只留下.exe文件,其余文件被删除掉。

参考链接:https://blog.csdn.net/Dasis/article/details/121579796

 

原文地址:http://www.cnblogs.com/yadira/p/16915537.html

1. 本站所有资源来源于用户上传和网络,如有侵权请邮件联系站长! 2. 分享目的仅供大家学习和交流,请务用于商业用途! 3. 如果你也有好源码或者教程,可以到用户中心发布,分享有积分奖励和额外收入! 4. 本站提供的源码、模板、插件等等其他资源,都不包含技术服务请大家谅解! 5. 如有链接无法下载、失效或广告,请联系管理员处理! 6. 本站资源售价只是赞助,收取费用仅维持本站的日常运营所需! 7. 如遇到加密压缩包,默认解压密码为"gltf",如遇到无法解压的请联系管理员! 8. 因为资源和程序源码均为可复制品,所以不支持任何理由的退款兑现,请斟酌后支付下载 声明:如果标题没有注明"已测试"或者"测试可用"等字样的资源源码均未经过站长测试.特别注意没有标注的源码不保证任何可用性