百度360必应搜狗淘宝本站头条
当前位置:网站首页 > IT知识 > 正文

弄懂gcc g++ make cmake含义与区别

liuian 2025-01-21 19:28 37 浏览

一、什么是GCC

首先介绍一下GCC:GNU Compiler Collection(GNU 编译器集合),在为Linux开发应用程序时,绝大多数情况下使用的都是C语言,因此几乎每一位Linux程序员面临的首要问题都是如何灵活运用C编译器。目前 Linux下最常用的C语言编译器是GCC(GNU Compiler Collection),它是GNU项目中符合ANSI C标准的编译系统,能够编译用C、C++和Object C等语言编写的程序。GCC不仅功能非常强大,结构也异常灵活。最值得称道的一点就是它可以通过不同的前端模块来支持各种语言,如Java、 Fortran、Pascal、Modula-3和Ada等。

gcc与g++区别:

1、gcc 和 g++都是GNU(组织)的一个编译器

2、gcc是GCC中的GUNC Compiler(C 编译器)

3、g++是GCC中的GUN C++ Compiler(C++编译器)

4、更准确的说法是:gcc调用了Ccompiler,而g++调用了C++ compiler

5、对于 *.c和*.cpp文件,gcc分别当做c和cpp文件编译(c和cpp的语法强度是不一样的); g++则统一当做cpp文件编译

gcc与g++的安装:

gcc 安装完毕之后,可以查看版本:

我安装的为gcc /g++ 7.5.0

二、GCC/G++工作流程

GCC 编译器对程序的编译下图所示,分为 4 个阶段:预处理(预编译)、编译和优化、汇编和链接。GCC 的编译器可以将这 4 个步骤合并成一个。先介绍一个每个步骤都分别做了写什么事儿:

预处理:在这个阶段主要做了三件事: 展开头文件 、宏替换 、去掉注释行

这个阶段需要 GCC 调用预处理器来完成,最终得到的还是源文件,文本格式

编译:这个阶段需要 GCC 调用编译器对文件进行编译,最终得到一个汇编文件

汇编:这个阶段需要 GCC 调用汇编器对文件进行汇编,最终得到一个二进制文件

链接:这个阶段需要 GCC 调用链接器对程序需要调用的库进行链接,最终得到一个可执行的二进制文件

g++ 编译示例

源码

第一步:对源文件进行预处理,需要使用的 gcc 参数为 -E

第二步:编译预处理之后的文件,需要使用的 gcc 参数为 -S

第三步:对得到的汇编文件进行汇编,需要使用的 gcc 参数为 -c

第四步:将得到的二进制文件和标准库进制链接,得到可执行的二进制文件,不需要任何参数

第五步:运行

最后再次强调,在使用 gcc 编译程序的时候可以通过参数控制内部自动执行几个步骤:(命令:gcc/g++ xxx.cpp -o xxxexe)

三、cmake与make区别

当你的程序只有一个源文件时,直接就可以用gcc命令编译它。但是当你的程序包含很多个源文件时,用gcc命令逐个去编译时,你就很容易混乱而且工作量大。

什么是make?

所以出现了make工具!make工具可以看成是一个智能的批处理工具,它本身并没有编译和链接的功能,而是用类似于批处理的方式—通过调用makefile文件中用户指定的命令来进行编译和链接的。

makefile是什么?简单的说就像一首歌的乐谱,make工具就像指挥家,指挥家根据乐谱指挥整个乐团怎么样演奏,make工具就根据makefile中的命令进行编译和链接的。makefile命令中就包含了调用gcc(也可以是别的编译器)去编译某个源文件的命令。

什么是cmake?

makefile在一些简单的工程完全可以人工手下,但是当工程非常大的时候,手写makefile也是非常麻烦的,如果换了个平台makefile又要重新修改。

这时候就出现了CMake这个工具,cmake就可以更加简单的生成makefile文件给上面那个make用。当然cmake还有其他功能,就是可以跨平台生成对应平台能用的makefile,你不用再自己去修改了。可是cmake根据什么生成makefile呢?那就是CMakeLists.txt文件。

最简单的CMakeLists.txt:

相关推荐

安卓手机exe文件怎么打开(安卓手机用什么打开exe文件)

在Android操作系统中,通常情况下是无法直接运行.exe文件的,因为Android手机和Windows操作系统在底层架构上存在较大差异。不过,有一些方法可以让Android手机...

声卡怎么安装在电脑主机上(声卡怎么插到电脑上)

安装电脑主机的声卡通常需要进行以下步骤:1.确认声卡的类型:首先,确定您要安装的声卡类型,是内置声卡还是外部插卡声卡。内置声卡通常已经集成在主板上,而外部插卡声卡需要插入主板的PCIe插槽或其他的扩...

hplaserjet1020驱动下载 win10

您好,感谢您选择惠普产品。首先确认打印机本身无报错请您点击开始--设置--打印机和传真(设备和打印机)--看到打印机图标把鼠标放在图标上确认状态文档是否为就绪文档0如果不是建议删除文档重启电脑,...

联想小新怎么找售后维修(联想小新怎么找售后维修点)

给大家介绍几种解决的办法,大家可以试试:方法一:最简单的方法就是重启一下你的电脑,一般没有太大问题重启一下电脑就可以了。方法二:如果你电脑中安装了360安全卫士,那么你可以打开360安全卫士,然后点击...

笔记本win10系统重装(笔记本win10系统重装u盘启动)

win10系统重装方法如下第一步:下载安装好老毛桃U盘启动盘制作工具,制作一个U盘启动盘,建议U盘内存在8G以打开浏览器,搜索“老毛桃官网”,进入官网后,在首页点击“完整版”下载第二步:下载好win1...

主题之家移动版(主题中心下载手机版)

根据我的了解,汽车之家王国分为多个主题。其中包括新车评测、汽车导购、行业资讯、改装技术、赛车运动等。新车评测主题提供各种品牌和型号的汽车评测文章和视频,帮助消费者了解车辆性能和特点。汽车导购主题提供购...

win7电脑分盘(windows7电脑分盘)

在Win7系统电脑上分盘,您可以按照以下步骤进行操作:1.打开“计算机管理”:右键点击“计算机”图标,选择“管理”选项,打开“计算机管理”窗口。2.打开“磁盘管理”:在“计算机管理”窗口中,选择“...

电脑任务栏怎么还原到下边快捷键

电脑任务栏还原到下边方法:1.在任务栏上单击右键进入Windows电脑桌面后直接在任务栏上单击鼠标右键。2.点击锁定任务栏在弹出的菜单里面点击倒数第二个锁定任务栏选项。3.将任务栏拖到下方再按下鼠标左...

windows7怎么单击修复计算机

方法/步骤windows7的设置一般都可以在“控制面板”调整,鼠标的功能调整也不例外。首先打开“开始”-“控制面板”。“控制面板”默认是按照类别分类的,可能看不到鼠标选项,不过我们可以在搜索框里搜索“...

rog售后维修服务中心(rog官方维修点查询)

如果你的rog手机坏了,可以选择去rog手机官方维修点或者授权的维修中心修理。在这些地方,工程师们具有专业的维修知识和技能,能够确保对rog手机进行正确的维修和保养。此外,他们也会使用原厂备件,以确保...

装机系统哪个好(装系统那个好)

一、【重装win10正版系统】   二、【好用一键重装系统】  三、【优盘一键重装系统】 四、【免u盘一键重装系统】五、【小白在线一键重装系...

计算机怎么设置密码(计算机怎么设置密码锁屏)
  • 计算机怎么设置密码(计算机怎么设置密码锁屏)
  • 计算机怎么设置密码(计算机怎么设置密码锁屏)
  • 计算机怎么设置密码(计算机怎么设置密码锁屏)
  • 计算机怎么设置密码(计算机怎么设置密码锁屏)
win10刻录光盘的方法和步骤(win10系统怎么刻录光盘)

1.打开Windows10中的“文件资源管理器”,找到要刻录的文件或文件夹。2.选中文件/文件夹,右键单击选中“发送到-->DVDRW驱动器”。3.确认要刻录的光盘的名称和格式(默...

惠普笔记本电脑官网驱动下载

HP惠普打印机驱动官网是存在的。因为HP惠普是一家著名的电脑及相关产品制造商,他们会提供各种驱动程序和软件以保证设备的兼容性和稳定性。HP惠普打印机驱动官网可以通过搜索引擎查找,也可以通过HP惠普的官...

2025win7专业版激活密钥(2020win7专业版永久激活码)

cad序列号和密钥是111-111111,可以通用的,但激活码则需要通过CAD2014注册机对申请号的换算才能得出结果,当然结果有很多,用户可以不断的Generate一个。cad序列号和密钥是111-...