【Qt】make 文件 .cpp文件 .pro文件跟带UI的.pro文件

文本程序到可执行文件生成无论在什么平台大致分为以下几个部分: 
  1.用编辑器编写源代码,如.c文件。 
  2.用编译器编译代码生成目标文件,如.o。 
  3.用链接器连接目标代码生成可执行文件,如.exe。 
  Linux平台下,.o文件一般是通过编译的但还未链接的目标文件,.out文件一般都是经过相应的链接产生的可执行文件(linux下)。当然这是一般情况下人们这么设置,而真正的,在linux中 .o通常保存的是可执行代码 ,至于可执行文件则没有规定扩展名,用的是文件属性位来决定的是否可执行。在chmod中设置。 
  我们知道编译和链接阶段是靠g++和gcc编辑器来完成,这两个编译阶段是相同的,但是链接阶段g++默认链接c++库,所以一般情况下用gcc编译c文件,而g++编译cpp文件。当然g++也可以编译c文件,而gcc编译cpp文件则需要在后面加上参数-lstdc++,作用就是链接c++库。 
  但是如果编译和链接的阶段如果源文件太多,一个一个编译时就会特别麻烦,于是人们想到,为什么不设计一种类似批处理的程序,来批处理编译源文件呢,于是就有了make工具,它是一个自动化编译工具,你可以使用一条命令实现完全编译。但是你需要编写一个规则文件,make依据它来批处理编译,这个文件就是makefile,所以编写makefile文件也是一个程序员所必备的技能。 
  对于一个大工程,编写makefile实在是件复杂的事,于是人们又想,为什么不设计一个工具,读入所有源文件之后,自动生成makefile呢,于是就出现了cmake工具,它能够输出各种各样的makefile或者project文件,从而帮助程序员减轻负担。但是随之而来也就是编写cmakelist文件,它是cmake所依据的规则。所以在编程的世界里没有捷径可走,还是要脚踏实地的。

 

   CMakeLists.txt文件 -->cmake工具 ->生成Makefile文件 ->用make来操作Makefile文件
针对CMakeLists.txt文件  cmake  生成Makefile文件、
针对Makefile文件  make 来整体编译文件类似多次执行g++

 

  原文件—cmakelist —cmake —makefile —make —生成可执行文件(make中则包含了多条链接以及gcc/g++编译语句)。 

 

 

 

当我们通过终端vi 创建一个.cpp文件时 我们直接进行

1.直接g++ -c  tree.cpp 然后 g++  tree.o -o Tree 生成可执行的 Tree 可执行文件   多个tree.o 中间文件

2.直接g++ tree.cpp 生成为默认的a.out可执行文件    

3.直接g++ tree.cpp -o Tree  生成Tree可执行文件

 

      当我们通过Qt  pro建立一个无UI的程序时,自动搜集文件需要信息生成Makefile文件由于Qt 中信号和槽slots /signals/Q_OBJECT 的存在 含Q_OBJECT的.h 文件 对应的.cpp文件 在经过Qt pro编辑生成Debug版时会自动生成moc_XXX.cpp文件   如所建项目名称为abc

 

当我们通过Qt pro 建立一个带UI的程序时 程序含有Q_OBJECT  .h文件会多余生成ui_XXX.h文件 比如建立一个ABC

 

  如果pro中加入了RESOURCES += \../qss/qresource.qrc   

会在Debug版多生成两个文件qrc_qresource.cpp   qrc_qresource.o 文件 最终也会汇总到     Makefile文件中

      Debug通常称为调试版本,通过一系列编译选项的配合,编译的结果通常包含调试信息,而且不做任何优化,以为开发人员提供强大的应用程序调试能力。而Release通常称为发布版本,是为用户使用的,一般客户不允许在发布版本上进行调试。所以不保存调试信息,同时,它往往进行了各种优化,以期达到代码最小和速度最优。为用户的使用提供便利。

posted @ 2017-04-10 14:05  sowhat1412  阅读(206)  评论(0编辑  收藏  举报