gcc/g++ 、Make/Makefile、CMake/CMakeLists.txt、qmake关系简述

1、gcc与g++

首先来了解下编译器的主要工作流程:

源码(Source Code)>> 预处理器(Preprocessor)>> 编译器(Compiler) >> 汇编程序(Assembler)>> 目标代码(Target Code) >> 链接器(Linker)>> 可执行程序(Executables)

gcc:

GCC,全称GNU Compiler Collection,是GNU编译器套装,最开始编译C语言,后来可以处理C++以及Fortran、Java、Go等其他语言。

g++:

而g++是GCC对C++的升级版本

gcc与g++的区别:

两者都可以编译C和C++代码;对于.c文件,GCC把它当做C程序,G++当做C++程序;对于.cpp文件,二者都将其视为C++程序。

编译阶段,G++会调用GCC,对于C++代码,两者等价;但GCC不能自动和C++程序使用的库链接。所以,对于C++程序,一般都使用G++做编译和链接。

小结:

  1. g++是gcc对C++的升级版本,编译阶段,会调用gcc。
  2. 如果你有一份C写的源代码(.c文件),你可以用gcc来做编译和链接,也可以用g++;但是源代码是C++写的话,只能用g++了,应为gcc不能自动和C++程序使用的库链接

2、Make与Makefile、CMake与CMakeLists.txt、qmake

GCC/G++一般用于单个源文件的编译,当一个工程有多个源文件时,再用GCC/G++逐个编译的话,效率太低了,所以就出现了Make工具

Make相当于一个批处理命令,本省没有编译功能,通过makefile规则文件调用GCC/G++或其他命令来编译和链接。当工程较大时,手写makefile比较麻烦;且在不同平台下编译时,需要重新修改makefile,十分麻烦,因此CMake应运而生啦。

CMake是一个跨平台的编译工具,通过规则文件CMakeLists.txt生成Makfile文件,CMakeLists.txt文件需要自己去写。

qmake是为Qt量身打造的编译工具,Qt是跨平台C++图形用户界面应用程序开发框架。qmake根据Qt工程文件(.pro)生成跨平台的makefile文件。

小结:

当我们在qt写好CMakeLists.txt并运行,点击构建可能用到qmake根据CMakeLists.txt文件生成makfile。点击CMake,用到CMake根据CMakeLists.txt文件生成makfile。然后再是Make(批处理命令)根据刚刚得到的makefile文件调用G++/GCC编译器进行对源代码进行编译和链接。

参考:

https://www.cnblogs.com/dinghongkai/p/11316528.html#

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值