首页 > 其他分享 >学习makefile(一)

学习makefile(一)

时间:2024-07-30 22:28:52浏览次数:12  
标签:代码 makefile mk 学习 编译 开发

1、makefile基础

  对于从事嵌入式开发的朋友们,学会MK非常重要。对于部分朋友在别人已经搭建好的开发平台上扩展一些功能的开发工作,上手很快。但是一但遇到编译相关的问题,就显得束手无策。(本人也是基于这个原因,此次开始系统学习Makefile)。关于编译问题主要有两个方面1:代码的语法错误,2:Makefile相关错误。

为了去增加自己的竞争力,也就是提高自己的开发效率以及开发水平,能够更加有信息面对遇到的编译文件,学习makefile是非常重要的。

  开发流程:需求->设计方案->开发代码->生成可执行文件->验证功能

与makefile关系最大的是第三步makefile书写的好坏与项目开发有很大的影响,设计的好的mk,我们重新编译时,只需要编译哪些上次编译成功后修改过的文件。相反,如果是一个不好的mk,对于每一次的编译都需要先clean,在重新编译整个项目,这样会耗费大量开发人员的时间用于编译,也就意味着效率会变低。

2、makefile的概念

一个是目标,另一个是依赖。目标就是运行make以后生成什么;依赖就是告诉mafile如何去实现目标。在MK中,目标和依赖是通过规则来表达的,驾驭mk,最主要的是采用目标和依赖关系来思考所需解决的问题

3、环境

VMware上可以单独装个linux,或者实在windows上安装Cgywin来学习mk。

3、代码如何到可执行程序 (扩展)

https://www.cnblogs.com/gunancheng/p/17397025.html(参考代码到可执行程序的过程,动态库静态库的区别)

 

标签:代码,makefile,mk,学习,编译,开发
From: https://www.cnblogs.com/gunancheng/p/18332151

相关文章

  • AI/机器学习(计算机视觉/NLP)方向面试复习1
    1. 判断满二叉树所有节点的度要么为0,要么为2,且所有的叶子节点都在最后一层。#include<iostream>usingnamespacestd;classTreeNode{public: intval; TreeNode*left; TreeNode*right;//创建的时候输入参数x,会把x给val,nullptr给left和right TreeNode(intx):va......
  • Hadoop学习
                    hadoop的概念还没有完全了解完全,但是它的核心是处理和存储大数据,需要在虚拟机上面进行系统的测试......
  • 为何刻意学习赚钱是必经之路
    在探索财富之路上深耕细作,你终将收获成功的果实。自幼历经拮据,我内心深处便种下了对金钱的渴望与珍视。随着年岁的增长,我愈发坚信,金钱不仅是生存的基础,更是解决生活中绝大多数困扰的钥匙。观察世间百态,不难发现:财富的光芒能赋予人话语的力量,即便言辞平实,亦能赢得他人的信服;反......
  • 学习记录第十四天
    快速排序:voidqSort(int*begin,int*end)//快速排序{if(begin>=end){return;}intt=*begin;int*p=begin;int*q=end;while(p<q){while(p<q&&*q>=t){-......
  • C 语言指针学习
    C语言指针学习目标:复习软考+阅读代码+理解数据结构;1.指针定义内存区域中的每个字节都对应一个编号,这个编号就是地址。如果在程序中定义了一个变量,那么在对程序中进行编译时,系统就会给这个变量分配内存单元。按变量地址存取值的方式称为直接访问,如printf("%d",&i);另一种......
  • 学习的第十二天(2024.7.29)
    1.JavaScriptJavaScript,简称JS注意:js的语言在html页面中写在body中,在</body>这个标签的上部写2.JavaScript的基本语法:1.定义变量:let a=10;varb=20;2.也可以通过let声明对象:let obj={};对象中属性的赋值:obj.name="张三";3.定义常量:varsex="男";obj.name......
  • 勤奋学习的第十三天(2020.7.30)
    1.MySQL中的DMLDML:数据库管理语言1.添加数据:insert1.指定具体列时添加数据:insert into 表名(列名,列名...) value(,,...)这种情况会向表中具体列中添加一条数据,数据内容在value中insertintostaff(id,code,name,salary)value(2,'1002','李四',12000);也可以......
  • 高中生需要养成的学习习惯有哪些
    高中生需要养成的学习习惯包括主动预习、‌高效做作业、‌考后必分析、‌有错必改、‌认真听课、‌弄清概念性质基本方法、‌经常复习、‌以学为先、‌随处学习、‌讲究条理、‌学会阅读、‌合理安排、‌观察和思考有机结合、‌切磋琢磨、‌主动竞争、‌总结归纳。‌这些习惯涵盖......
  • 【学习笔记】并查集应用
    【学习笔记】并查集应用以NOI2001食物链为例の两种并查集用法。题目大意:规定每只动物有且仅有三种可能的种类\(A、B、C\),\(A\)会吃\(B\),\(B\)会吃\(C\),\(C\)会吃\(A\)。给定\(N\)只动物,\(K\)个语句。每个语句有如下两种可能的表达:1XY表示动物\(X\)与动......
  • 暑期学习C语言第一天完整版
    回顾今日成果:一、scanf语句的掌握我们可以看一看这道题,只是一个简单的整数输入、输出。在这之中,我们就可以利用scanf、printf语句,在使用scanf语句我们需要注意:scanf(“%d”,&a);printf("%d",a);其中关键点为,在使用scanf时,%d在双引号里面和&a中&是我们容易遗忘。二......