1731_makefile编写小结1_编译同目录下的文件

news2024/11/27 22:24:57

全部学习汇总: GreyZhang/g_makefile: Learn makefile from all kinds of tutorials on the web. Happy hacking and let's find an common way so we may don't need to touch makefile code any more! (github.com)

欢迎路过的YUAN类朋友相互交流,以下是我的联系方式:

Email:greyzhang@126.com

微信:grey0612

       我曾经尝试过多次学习makefile的编写,发现这个东西也不是很好写。学习make的使用难度似乎不亚于一门新的编程语言。过去我曾经多次采用偷懒的方式,随便找个makefile大致找一下规律然后自己写个脚本把所需的新的makefile生成出来,我也曾经求助于cmake等自动生成工具。这曾经让我实现过很多简单的makefile,也让我把gcc能够简单测试起来,不过距离我能够游刃有余使用其他的编译器还有很长的路要走。至于CodeWarrior,我则是采用了模仿然后使用脚本修改的方式,倒也能够满足我的要求。

       有时候想想,学习基础的技术就如同武侠小说里的内功一般。如果稳扎稳打最后出来的效果肯定是比投机取巧要好一些,我也想稳扎稳打最终能够在此技术上有所小成。我把自己的能力进阶分为几个小段,最终的目的当然是能够写出多层级、多目录的复杂makefile,而且使用非gcc的编译器。

       今天先完成第一个小目标——同一个目录下的代码文件编译。

我的工程目录树如下:

    code1.c

    code1.h

    code2.c

    code2.h

    defs.h

    main.c

makefile

在同一个目录下存在以上文件,而makefile文件则是我的makefile。描述的内容如下:

1,所有的c文件都依赖于defs.h

2,codeX.c依赖于codex.h

3,main.c依赖于所有头文件

4,最终生成的结果为target

       编写makefile如下:

       运行效果如下:

       测试了文件依赖关系也都能够完成识别,这一个小目标算是完成。

       这个例子似乎比较简单,稍微看几分钟make手册的人都能够写出来。下一次的晋级目标:完成c文件依赖的自动推导。

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

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

相关文章

每日学术速递6.2

CV - 计算机视觉 | ML - 机器学习 | RL - 强化学习 | NLP 自然语言处理 Subjects: cs.CL 1.BiomedGPT: A Unified and Generalist Biomedical Generative Pre-trained Transformer for Vision, Language, and Multimodal Tasks 标题:BiomedGPT:用于…

chatgpt赋能python:Python反向99乘法表:简单易学的终极练习

Python反向99乘法表:简单易学的终极练习 Python是一门强大而又容易上手的编程语言,而反向99乘法表则是一个极佳的练手项目。不仅能锻炼Python的基本语法和逻辑思维,同时也能体现出代码的风格和美感。本文将以Python反向99乘法表为例&#xf…

基于matlab仿真L形金属块基于时间温度分布图

一、前言 此示例说明了如何使用 Simulink 3D 动画™和 MATLAB 接口来操作复杂对象。 在此示例中,矩阵类型的数据在 MATLAB 和虚拟现实世界之间传输。使用此功能,您可以实现大量的颜色变化或变形。这对于可视化各种物理过程很有用。 我们在L形金属块中使用…

Chain of Thought Prompting和Zero Shot Chain of Thought初步认识

1. 思维链提示(Chain-of-Thought Prompting) 思维链(Chain-of-Thought:CoT)提示过程是一种最近开发的提示方法,它鼓励大语言模型解释其推理过程。下图显示了 few shot standard prompt(左)与链式思维提示过程(右&…

ChatGPT提示词攻略之基本原则

下面是调用openai的completion接口的函数。但在本文中并不是重点。了解一下就好。 import openai import osfrom dotenv import load_dotenv, find_dotenv _ load_dotenv(find_dotenv())openai.api_key os.getenv(OPENAI_API_KEY)def get_completion(prompt, model"gp…

[LeetCode周赛复盘] 第 348场周赛20230604

[LeetCode周赛复盘] 第 348场周赛20230604 一、本周周赛总结6462. 最小化字符串长度1. 题目描述2. 思路分析3. 代码实现 6424. 半有序排列1. 题目描述2. 思路分析3. 代码实现 6472. 查询后矩阵的和1. 题目描述2. 思路分析3. 代码实现 6396. 统计整数数目1. 题目描述2. 思路分析…

10.全局配置 app.json 与页面配置

常用的配置项有 pages 小程序的所有页面window 小程序窗口的外观tabBar 小程序底部的tabBar效果,就是底部的切换那部分style 组件样式版本 目录 1 window 2 tabBar 3 页面配置 1 window 小程序由下面三个部分组成,window可以配置 导航栏区域 与…

JavaSE_day43(多线程单线程区别,图解main方法若是单多线程该如何执行,如何使用多线程2种方式)

1 A.java * 学习多线程之前,我们先要了解几个关于多线程有关的概念。 A:进程:进程指正在运行的程序。确切的来说,当一个程序进入内存运行,即变成一个进程,进程是处于运行过程中的程序,并且具有一定…

【生成数据】绘制简单的折线图

使用scatter绘制散点图并设置其样式 plt.scatter(2, 4, s200)#设置图表标题并给坐标轴加上标签 plt.title("Square Number", fontsize24) plt.xlabel("Value", fontsize14) plt.ylabel("Square of Value", fontsize14)#设置刻度标记的大小 plt.…

2022年,Rust与Go哪一个更好?

这是每一个程序员和开发人员都问过的问题,还有很多人仍然在问,即使他们已经做出了自己的决定。Rust vs. Go。2022年,我应该选择哪一个?或选择哪种语言--Golang或Rust。 Golang和Rust是目前使用的最年轻的编程语言。Go于2009年在谷…

最新ChatGPT4.0Plus开通教程-支付宝购买苹果礼品卡-亲测可用

2023.06.04亲测可用ChatGPT开通Plus教程 前言:一、准备工作二、购买苹果礼品卡一、官网购买礼品卡二、支付宝方式购买 三、AppStore充值礼品卡四、ChatGPT Plus 订阅五、iOS 端 ChatGPT Plus 订阅失败解决方法六、美区AppStore账号ID注册教程: 之前&…

【Svelte】一个简单的前端框架

Svelte.js的学习成本高吗? Svelte是新手编码初学者的完美平台。只需一个HTML/CSS和JavaScript技能组合,您就可以从头开始构建您的第一个网站,而无需额外的知识。 这使得学习曲线非常小,不像它的大多数替代方案。除此之外&#xf…

ChatGLM-6b 多任务微调

ChatGLM-6b也是一种预训练模型,它也可以通过微调来适应下游任务。实验表明,使用ChatGLM-6b微调和Bert类预训练模型微调的效果相近。如果采用多任务设计,ChatGLM-6b的效果会更好。你可以在这里了解更多关于ChatGLM-6B的信息: ChatGLM-6Bhttps:…

边缘化中FEJ图例的理解

如图所示,在解释为什么需要FEJ(First Estimation Jacobian)时,通常会将这个图拿出来说事。但是,很多时候只是一笔带过,这个图看的云里雾里的,不是非常明白(可能是我理解力的问题),所以&#xff…

AngularJs学习笔记--bootstrap

AngularJs学习笔记系列第一篇,希望我可以坚持写下去。本文内容主要来自 AngularJS 文档的内容,但也加入些许自己的理解与尝试结果。 一、总括 本文用于解释Angular初始化的过程,以及如何在你有需要的时候对Angular进行手工初始化。 二、An…

【云原生-K8s】k8s可视化管理界面安装配置及比较【Kubesphere篇】

总览 安装了k8s控制面板,方便日常的问题处理,查看资源状态信息,也可以增加子账号进行开放给其他人员使用,减少命令操作,提升工作效率 前置条件 须有一个正常使用的k8s集群附k8s v1.23版本搭建:https://…

JavaScript实例(Visual Studio Code)(一)

JavaScript程序本身不能独立存在 它是依附于某个HTML页面 在浏览器端运行的 基本语法&#xff1a; <script type"text/javascript" [src"外部js文件"]>... </script> 语法说明&#xff1a; script为脚本标记&#xff0c;它必须以<scri…

【小沐学Web】Rust实现Web服务器

文章目录 1、简介2、开发环境配置2.1 下载2.2 安装2.3 编辑工具2.4 构建工具2.5 自动化工具 3、Hello World4、TCP/UDP通信5、Web服务器结语 1、简介 https://www.rust-lang.org/ Rust: 一种使每个人都能够构建可靠且高效的软件的语言。 如今&#xff0c;全球有数百家公司在生…

谈谈Memcached与Redis

1. Memcached简介 Memcached是以LiveJurnal旗下Danga Interactive公司的Bard Fitzpatric为首开发的高性能分布式内存缓存服务器。其本质上就是一个内存key-value数据库&#xff0c;但是不支持数据的持久化&#xff0c;服务器关闭之后数 据全部丢失。Memcached使用C语言开发&am…

【01】水仙花数算法

水仙花数 是指一个n位数&#xff08;n ≥ 3&#xff09;&#xff0c;它的每个位上的数字的n次幂之和等于该数本身。换句话说&#xff0c;对于一个三位数而言&#xff0c;如果它满足条件&#xff1a;各个位上的数字的立方和等于该三位数本身&#xff0c;那么这个数就被称为水仙花…