gcc make makefile cmake之间的关系梳理

  1. gcc是GNU Compiler Collection(GNU编译器套件),也可以简单认为是编译器,它可以编译很多编程语言(包括C、C++、Object-C、Fortran、Java等)
  2. 当你的程序只有一个源文件,直接用gcc命令编译它。
  3. 但是当你的程序包含很多源文件,用gcc命令逐个去编辑,很容易混乱而且工作量大。
  4. 所以出现了make工具。make工具可以看成是一个智能批处理工具,它本身并没有编译和链接的功能,而是用类似批处理的方式通过makefile文件中用于指定的命令进行编译和链接。
  5. makefile文件是什么?简单的说就像一首歌的乐谱,make工具就像指挥家,指挥家根据乐谱指挥整个乐团怎样演奏,make工具就根据makefile中的命令进行编译和链接。
  6. makefile命令中包含调用gcc(也可以是其他编译器)去编译某个源文件命令。
  7. makefile在一些简单的工程完全可以人工手写,但当工程非常大的时候,手写makefile也是非常麻烦,如果换了平台makefile又要重新修改。
  8. 这时候出现cmake工具,cmake就可以更加简单的生成makefile文件给上面的make工具使用。当然cmake还有其他功能,可以跨平台生成对应平台能用的makefile,这样不需要自己修改。
  9. cmake是根据什么生成makefile?它又是根据一个叫CMakeList.txt文件(学名:组态档)去生成makefile
  10. 到最后CMakeList.txt文件谁写?答:还是自己写
  11. 如果用IDE,类似VS这些工具,一般都是自己弄好,你只需要按一下那个三角形。
    在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://xiahunao.cn/news/2981882.html

如若内容造成侵权/违法违规/事实不符,请联系瞎胡闹网进行投诉反馈,一经查实,立即删除!

相关文章

系统思考—啤酒游戏

最近有不少的合作伙伴来询问我啤酒游戏这个来自于MIT(麻省理工学院)经典的沙盘,上周刚刚结束Midea旗下的一家公司市场运营部《啤酒游戏沙盘-应对动态性复杂的系统思考智慧》的课程。 参与这次沙盘体验的团队成员深刻体会到了全局思考的重要性…

GDPU unity游戏开发 碰撞体与关节

让你设计的角色跑起来吧,可以是动画,也可以是碰撞器的运动。 运动小车 找到小车素材,导入到层级面板。然后可以新建一个地面让小车在上面运动,新建一个方块当障碍物。 摆放好后,要加组件。记住,在unity中运…

02 VMware下载安装银河麒麟(Kylin)系统

02 VMware下载&安装银河麒麟(Kylin)系统 一、官网1、官网地址 二、下载1、官网下载(1)服务器操作系统(2)申请试用(3)产品试用申请(4)点击下载连接即可 2、…

SQL基础(关系模型)

目录 SQL及定义域概念 SQL是什么 定义域 关系简介 关系的定义 关系的封闭性 关系模型简介 关系模型 谓词逻辑 运算基础 SQL的加减乘除 SQL的除法1 SQL的除法2 SQL的除法3 三值逻辑 NULL的危害 消除NULL SQL及定义域概念 SQL是什么 Structured Query Languag…

泽众RPA1.1.2产品升级,新增团队管理、用户管理、工作空间及自动化任务等功能,大幅提升工作效率

泽众RPA1.1.2产品升级,通过新增团队管理模块、用户管理模块、工作空间功能、定时任务功能以及Excel和网络指令,解决了团队协作与权限管理不精细、任务自动化水平有限以及数据处理和网络操作功能局限等问题。升级后的产品不仅提升了工作效率和团队协作能力…

【Qt常用控件】—— 显示类控件

目录 1.1 Label 1.2 LCD Number 1.3 ProgressBar 1.4 Calendar Widget 1.5 小结 1.1 Label QLabel 控件是 Qt 中用于显示文本或图像的部件,是用户界面开发中常用的组件之一。 核⼼属性如下: 属性 说明 text QLabel 中的⽂本 textFormat ⽂本的格…

MySQL主从结构搭建

说明:本文介绍如何搭建MySQL主从结构; 原理 主从复制原理如下: (1)master数据写入,更新binlog; (2)master创建一个dump线程向slave推送binlog; &#xff…

小瓶清洗桶抗酸碱耐高温PFA清洗器半导体实验清洗用

PFA清洗桶,也叫PFA清洗器、PFA小瓶清洗桶,主要用于清洗浸泡实验室小型PFA溶样罐和烧杯等,带有密封螺纹盖,可以用于摇晃,高纯耐高温材质可放置电热板上加热使用。 特点:可拆卸倒酸口,可安全倒出酸…

网络安全是否有需求

● 由于网络威胁数量不断增加,网络安全的需求很高。 ● 组织正在大力投资网络安全以保护其数据。 ● 就业市场缺乏熟练的网络安全专业人员。 ● 网络安全认证可以提升您在网络安全领域的职业前景。 ● 持续学习并了解最新的安全趋势在该领域至关重要。 随着对技术和…

如何优雅地Spring事务编程

本文已收录至Github,推荐阅读 👉 Java随想录 微信公众号:Java随想录 在开发中,有时候我们需要对 Spring 事务的生命周期进行监控,比如在事务提交、回滚或挂起时触发特定的逻辑处理。那么如何实现这种定制化操作呢&am…

windows安装nssm并将jar打包为服务

一、nssm 下载地址 二、安装nssm服务 将下载的压缩包复制到安装目录进行解压,解压后有两个版本 win32 和 win64,根据系统选择。打开系统 powershell 命令窗口,进入安装目录指定版本目录,就可以使用nssm服务了。 # 安装服务&…

接口测试和Mock学习路线(中)

1.什么是 swagger Swagger 是一个用于生成、描述和调用 RESTful 接口的 WEB 服务。 通俗的来讲,Swagger 就是将项目中所有想要暴露的接口展现在页面上,并且可以进行接口调用和测试的服务。 现在大部分的项目都使用了 swagger,因为这样后端…

SV-7041T IP网络有源音箱 教室广播多媒体音箱(带本地扩音功能)教学广播音箱 办公室背景音乐广播音箱 2.0声道壁挂式网络有源音箱

SV-7041T IP网络有源音箱 教室广播多媒体音箱(带本地扩音功能) 教学广播音箱 办公室背景音乐广播音箱 一、描述 SV-7041T是深圳锐科达电子有限公司的一款2.0声道壁挂式网络有源音箱,具有10/100M以太网接口,可将网络音源通过自带…

汇编期末复习知识点

参考文献1 第一章 概述 组成 计算机系统由硬件子系统和软件子系统组成。硬件子系统:组成计算机系统的所有电子的,机械的,光学的和磁性的元部件。 计算机中常用进制数表示 十进制(Decimal):数据尾部加一后缀D,如2355D二进制&a…

TFTLCD时序介绍(ILI9341 8080并口时序)

ILI9341 8080并口 ILI9341是一个常见的TFT LCD显示控制器,用于驱动各种小型和中型尺寸的液晶显示屏。它支持多种分辨率,最常见的是240x320像素。ILI9341控制器具有内置的GRAM(Graphics RAM),可以通过SPI或8位并行接口…

初学python,怎样入门?

答案:乌龟绘图。 "乌龟绘图"通常指的是使用Logo语言的变种——Python中的turtle模块来进行图形绘制。在turtle模块中,一只名为“海龟”(Turtle)的小动物会在屏幕上移动,根据其行进路径来绘制图形。以下是一段…

百面算法工程师 | 激活函数 Activate Function

目录 10.1激活函数作用: 10.2 为什么激活函数都是非线性的 10.3 常见激活函数的优缺点及其取值范围 10.4 激活函数问题的汇总 10.4.1 Sigmoid的缺点,以及如何解决 10.4.2 ReLU在零点可导吗,如何进行反向传播 10.4.3 Softmax溢出怎么处…

如何解决非法采砂、过度开采的乱象?

非法采砂和过度开采是当今世界面临的重要环境问题之一。这些行为不仅破坏了生态平衡,还对河道安全、水资源保护等产生了严重影响。然而,经过多年的努力,河道采砂管理工作不断加强,全国采砂秩序总体可控。为了更有效地解决这一问题…

linux开发板开机启动向日葵

硬件:orangepi 5 pro 操作系统:ubuntu 20.4 lts 安装向日葵 根据我的实测,arm架构的ubuntu系统只能安装向日葵提供的麒麟系统的那个版本,具体安装方式官网下载页面有 允许任意用户连接到 X11 使用root用户登录后打开终端输入一下…

图形界面挂了?教你如何纯命令行下快速安装CentOS 7

在某些特定的系统或软件环境下,如使用 Parallels Desktop 18(PD18)虚拟化软件安装较老版本的操作系统(如 CentOS 7),可能会遇到只能通过命令行进行安装的情况。这通常是由于内核版本与图形安装器的兼容性问…