1.在linux环境下使用GNU的make工具能够比较容易构建一个属于自己的工程
,整个工程的编译只需要一个命令就可以完成编译、链接。这依赖于Makefile
文件。
2.Makefile的用途
        1.项目代码编译管理
        2.节省编译项目时间
        3.一次编写终身受益

make指令的安装命令 :sudo apt install make

3.Makefile的工作原理
    1>若想生成目标,检查规则中的依赖条件是否存在,如不存在,则寻找有
规则用来生成依赖文件
    2>检查规则中的目标是否需要更新,必须检查它的所有依赖,依赖中有一
个被更新,则目标必须更新

文件命名:Makefile makefile
        执行命令:make

一个规则:
        1》有依赖条件
        目标:依赖条件
            (一个tab缩进)命令

main:main.c
                            gcc main.c -o main

2》没有依赖条件,寻找依赖条件

main:main.o
                        gcc main.o -o main
                 main.o:main.c
                        gcc -c main.c -o main.o

总结一下:
        1.目标的时间必须晚于依赖条件的时间,否则更新目录
        2.依赖条件如果不存在,找寻新的规则去产生依赖

两个函数
        

创建多个.c文件,多个函数文件,.h,makefile 

makefile文件内容       clean清除所有的中间文件《例如:.o文件》
        执行make clean 清除所有指定内容

clean :
                       -rm -rf $(obj)
                chean没有依赖
                       -rm -rf $(obj)  “-”的作用是,删除不存在文件时,不报错,顺序执行结束

 三个自动变量

$@:在规定命令(从依赖转换到目标的方法)中,表示方法中的目标
        $^:在规定命令(从依赖转换到目标的方法)中,表示方法中的所有依赖条件
        $<:在规定命令(从依赖转换到目标的方法)中,表示方法中第一个依赖条件

SRC = $(wildcard ./src/*.c)
            OBG = $(patsubst %c,%o,$(SRC))

4.模式规则
5.静态模式规则
6.伪目标
    同目录下有ALL clean会对make造成影响,加入伪目标

.PHONY:clean ALL

7.加入警告信息,指定输出目录,头文件目录等

myArgs = -wall -g

readme .txt里面的内容

【linux】Makefile编写相关推荐

  1. linux Makefile编写的整理

    最近将Makefile的编写进行了整理和提炼了一下,大致分为五个步骤: 编译总共为五个部分  1.设置编译环境 set compile environment  2.获取要编译的源文件,以及把源文件转 ...

  2. linux 生成和使用动态链接库和静态链接库的Makefile编写

    引用 Jesse Rei 的 linux 生成和使用动态链接库和静态链接库的Makefile编写 生成和使用动态链接库和静态链接库的Makefile编写 1. 概述 介绍linux下生成和使用动态链接 ...

  3. spdlog linux编译出错,Linux下编写Makefile引入第三方库

    Linux下编写Makefile引入第三方库 前言:一直在使用CmakaList 生成Makefile文件,其实很少去写Makefile,但是最近帮朋友处理了一个Makefile引入第三方库的问题,就 ...

  4. Linux C编程Makefile编写初步-转

    Linux C编程Makefile编写初步 假设我们有下面这样的一个程序,源代码如下:  /* main.c */  #include "mytool1.h"  #include  ...

  5. linux下MaKefile编写

    Linux下编写 makefile 详细教程 近期在学习Linux下的C编程,买了一本叫<Linux环境下的C编程指南>读到makefile就越看越迷糊,可能是我的理解能不行. 于是goo ...

  6. Linux下的makefile编写 ——陈皓《跟我一起写Makefile》学习笔记(一)

    Linux下的makefile编写 前言 本人记笔记习惯使用OneNote,在学习LinuxC++过程中发现deepin上没有大佬开发或者移植,本人技术也不精,所以决定写博客记笔记(只是习惯问题,并没 ...

  7. Linux下Makefile编写语法

    原创 Linux下Makefile编写语法 2016-07-29 08:31:53 Datrilla 阅读数 1386更多 分类专栏: Linux Makefile 版权声明:本文为博主原创文章,遵循 ...

  8. Linux下shell脚本/Makefile编写

    Linux下shell脚本/Makefile编写 一.基本概念 代码变成可执行文件,叫做编译(compile):先编译这个,还是先编译那个(即编译的安排),叫做构建(build). make只是一个指 ...

  9. linux环境cpp/c文件的makefile编写(caffe举例)

    编译单个cpp文件 方法一.g++ 文件名.cpp,生成一个名为 "文件名.out" 的可执行文件 方法二.g++ -c 文件名.cpp -o 新文件名.o:生成一个被命名成 &q ...

  10. linux makefile 只能使用Tab键进行文本缩进

    在编写完linux Makefile后,在控制台输入make命令编译文件时报错,错误信息:"Makefile:13:*** 遗漏分隔符".查看Makefile文件内容,没有发现问题 ...

最新文章

  1. 2021-7-14 深度学习服务器Linux终端网络训练training(顶会ECCV网络BiSeNet)
  2. 详解WinCE下USB Host驱动开发(2)
  3. springMVC——SSM整合(IDEA 搭建简单 ssm 框架最详细最简单教程)
  4. Problem F. Grab The Tree HDU - 6324(树形dp+博弈)
  5. 剑指offer之二叉树的下一个结点
  6. C语言bcd码减法过程,bcd码的减法运算规则举例.ppt
  7. 统计消息总数_2019年度我国出国留学人员总数为70.35万人
  8. 面向兑现编程(四):多态
  9. jsp 判断时间大小
  10. 杭电多校HDU 6656 Kejin Player(概率DP)题解
  11. openCV,C++接口,cv::Mat矩阵数据元素读取
  12. c# midi播放器_C#中的MIDI文件切片器和MIDI库
  13. 电子技术基础(三)_第3章集成运算放大器及其应用__基本运算电路
  14. 搭建-ico图标制作
  15. debugger工具的使用以及调试
  16. 网络游戏怎么样推广引流,游戏推广怎么做引流
  17. 网络安全“攻防战”:“魔”“道”大盘点
  18. 汉字转拼音函数 linux,oracle 汉字转拼音
  19. c++ 报错 exponent has no digits
  20. 成功破解DSP builder13.0使用的是11.1的creak

热门文章

  1. JavaScript字符串转数字的5种方法及遇到的坑
  2. 自定义VIEW实现应用内消息提醒上下轮播
  3. Context Provider
  4. 《例说51单片机(C语言版)(第3版)》——导读
  5. matlab中把abs函数,Abs函数(ABS函数怎么用)
  6. linux生成动态链接库返回字符串,Linux动态链接库的生成和使用
  7. 面试总结day7:工厂模式以及如何设计一个优惠卷兑换码
  8. 毕业设计 Spring Boot的共享充电宝管理系统(含源码+论文)
  9. Github上传访问令牌申请(Personal access tokens)
  10. 数据类型(Data Type)