【linux】Makefile编写
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编写相关推荐
- linux Makefile编写的整理
最近将Makefile的编写进行了整理和提炼了一下,大致分为五个步骤: 编译总共为五个部分 1.设置编译环境 set compile environment 2.获取要编译的源文件,以及把源文件转 ...
- linux 生成和使用动态链接库和静态链接库的Makefile编写
引用 Jesse Rei 的 linux 生成和使用动态链接库和静态链接库的Makefile编写 生成和使用动态链接库和静态链接库的Makefile编写 1. 概述 介绍linux下生成和使用动态链接 ...
- spdlog linux编译出错,Linux下编写Makefile引入第三方库
Linux下编写Makefile引入第三方库 前言:一直在使用CmakaList 生成Makefile文件,其实很少去写Makefile,但是最近帮朋友处理了一个Makefile引入第三方库的问题,就 ...
- Linux C编程Makefile编写初步-转
Linux C编程Makefile编写初步 假设我们有下面这样的一个程序,源代码如下: /* main.c */ #include "mytool1.h" #include ...
- linux下MaKefile编写
Linux下编写 makefile 详细教程 近期在学习Linux下的C编程,买了一本叫<Linux环境下的C编程指南>读到makefile就越看越迷糊,可能是我的理解能不行. 于是goo ...
- Linux下的makefile编写 ——陈皓《跟我一起写Makefile》学习笔记(一)
Linux下的makefile编写 前言 本人记笔记习惯使用OneNote,在学习LinuxC++过程中发现deepin上没有大佬开发或者移植,本人技术也不精,所以决定写博客记笔记(只是习惯问题,并没 ...
- Linux下Makefile编写语法
原创 Linux下Makefile编写语法 2016-07-29 08:31:53 Datrilla 阅读数 1386更多 分类专栏: Linux Makefile 版权声明:本文为博主原创文章,遵循 ...
- Linux下shell脚本/Makefile编写
Linux下shell脚本/Makefile编写 一.基本概念 代码变成可执行文件,叫做编译(compile):先编译这个,还是先编译那个(即编译的安排),叫做构建(build). make只是一个指 ...
- linux环境cpp/c文件的makefile编写(caffe举例)
编译单个cpp文件 方法一.g++ 文件名.cpp,生成一个名为 "文件名.out" 的可执行文件 方法二.g++ -c 文件名.cpp -o 新文件名.o:生成一个被命名成 &q ...
- linux makefile 只能使用Tab键进行文本缩进
在编写完linux Makefile后,在控制台输入make命令编译文件时报错,错误信息:"Makefile:13:*** 遗漏分隔符".查看Makefile文件内容,没有发现问题 ...
最新文章
- 2021-7-14 深度学习服务器Linux终端网络训练training(顶会ECCV网络BiSeNet)
- 详解WinCE下USB Host驱动开发(2)
- springMVC——SSM整合(IDEA 搭建简单 ssm 框架最详细最简单教程)
- Problem F. Grab The Tree HDU - 6324(树形dp+博弈)
- 剑指offer之二叉树的下一个结点
- C语言bcd码减法过程,bcd码的减法运算规则举例.ppt
- 统计消息总数_2019年度我国出国留学人员总数为70.35万人
- 面向兑现编程(四):多态
- jsp 判断时间大小
- 杭电多校HDU 6656 Kejin Player(概率DP)题解
- openCV,C++接口,cv::Mat矩阵数据元素读取
- c# midi播放器_C#中的MIDI文件切片器和MIDI库
- 电子技术基础(三)_第3章集成运算放大器及其应用__基本运算电路
- 搭建-ico图标制作
- debugger工具的使用以及调试
- 网络游戏怎么样推广引流,游戏推广怎么做引流
- 网络安全“攻防战”:“魔”“道”大盘点
- 汉字转拼音函数 linux,oracle 汉字转拼音
- c++ 报错 exponent has no digits
- 成功破解DSP builder13.0使用的是11.1的creak
热门文章
- JavaScript字符串转数字的5种方法及遇到的坑
- 自定义VIEW实现应用内消息提醒上下轮播
- Context Provider
- 《例说51单片机(C语言版)(第3版)》——导读
- matlab中把abs函数,Abs函数(ABS函数怎么用)
- linux生成动态链接库返回字符串,Linux动态链接库的生成和使用
- 面试总结day7:工厂模式以及如何设计一个优惠卷兑换码
- 毕业设计 Spring Boot的共享充电宝管理系统(含源码+论文)
- Github上传访问令牌申请(Personal access tokens)
- 数据类型(Data Type)