Makefile基本语法
04-24 阅读数 1万+
1、Makefile基本格式:make所看到的第一项规则会被当做默认规则使用。一个规则可分成三个部分:目标:依赖1依赖2。。。命令注意:命令前必须使用有一个制表符()。例: foo.o:foo.cfo... 博文 来自: u013216061的博客
Makefile样例:http://blog.chinaunix.net/uid-25100840-id-2047826.html
all : main.c foo1.c foo2.c foo3.c |
targets:prerequisites |
targets:目标文件名可以多个,空格隔开 |
|
|
%代表任意长度串,空格不属于 |
|
|
|
|
在Makefile中使用命令要Tab开始, 否则会出现“遗漏分隔符,停止”。 变量有(=)和(:=)两种,前者会造成递归定义。 (?=)如果左边变量未定义则赋予右值。 变量使用需要$(变量)或者${变量}。 |
全局变量 |
|
|
|
define 变量 |
全局变量 |
|
|
|
override 指示符 |
全局变量 |
|
|
|
$@目标集合 $<依赖目标集合 |
目标变量 |
自动化变量运行才有值 |
|
|
%.o :CFLAGS=-o |
目标模式变量 |
|
|
|
$(function argument1,argument2) |
函数调用 |
|
|
|
若干个单词串处理函数 |
$(subst replaceword,newword,sourceText |
|
$(subst ee,EE,feet on the street) |
fEEt on the strEEt |
空返回‘ ’ |
$(patsubst pattern,replacement,sourcetext) |
|
$(patsubst %.c,%.o,x.c.c bar.c) |
x.c.o bar.o |
|
$(findstring find,sourcetext) |
有返回对应,否则' ' |
|
|
|
$(filter pattern1 pattern2 ,sourceText) |
过滤器,返回SourceText符合 %.后缀的模式 |
|
|
|
$(filter-out pattern1 pattern2,sourceText) |
反过滤,返回不符合对应模式的 |
|
|
|
$(sort word1 word2) |
字母序升序排序且去重 |
|
|
|
$(word index_1,sourceText) |
取第index个单词(单词不是字符),从1开始 |
|
|
|
$(wordlist fromIndex_1,toIndex_1,sourceText) |
去从fromIndex到toIndex的文本单词 |
|
|
|
$(words sourceText) |
统计单词个数 |
|
|
|
$(firstword sourceText) |
返回首单词 |
|
|
文件名操作函数 |
$(dir name1 name2) |
取目录函数,返回文件所在目录,不包括文件名 |
$(dir usr/e/hha.c dd) |
usr/e/ ./ |
|
$(notdir name1 name2) |
取文件名 |
$(notdir usr/e/hh.c dd) |
hh.c dd |
|
$(suffix name1 name2) |
取后缀,无后缀‘ ’ |
|
|
|
$(basename name1 name2) |
取前缀,无前缀‘ ’ |
|
|
|
$(addsuffix suffix,sourceText) |
加后缀 |
|
|
|
$(addprefix prefix,sourceText) |
加前缀 |
|
|
|
$(join list1,list2) |
连接函数,对应index的连接,无对应自己 |
|
|
|
$(foreach oneOfList,list,EveryDealText) |
循环函数,list中取之局部变量oneOfList中,用到处理部分,每个返回空格连接 |
|
|
条件判断函数 |
ifeq (arg1,arg2) endif |
if equal 判断是否相等?真:假; |
|
|
|
ifneq (arg1,arg2) endif |
判断是否不等?真:假; |
|
|
|
ifdef variable-name endif |
变量有值?真:假; |
|
|
|
ifndef variable-name endif |
变量空值?真:假; |
|
|
|
$(if condition,then_part,else_part) |
|
|
|
|
$(if condition,then_part) |
|
|
|
其他函数 |
$(call expression,parm1,parm2) |
在expression中用到后面的parm1用$(1) |
reverse=$(2) $(2) |
b a |
|
$(origin variable) |
Undefined未定义 |
|
|
|
$(shell shell命令) |
生成一个shell程序来执行命令 |
$(shell echo just text) |
just text |
控制make的函数 |
$(error text) |
|
ifdef ERROR_001 |
|
|
$(warning text) |
|
|
|
模式规则 |
destiPattern:sourcePattern;command |
%.o:%.c |
|
|
@echo just text |
echo just text |
|
|
|
echo just text |
just text |
|
|
|
Linux基础——makefile编写
07-05 阅读数 1200
Makefile基本原则和原理makefile中的三要素:目标、依赖、命令目标:要生成的目标文件(在Makefile中会把第一个目标作为终极目标,一切以生成终极目标为最终目的)依赖:生成目标文件需要的... 博文 来自: daidaihema的博客
Linux下Makefile快速编写入门
05-09 阅读数 2581
(一)为什么要编写Makefile 我们自己平常在linux下编译源文件时,当然可以使用gcc-Wall-gmain.c-omain这样的命令一个一个编译,但是一个工程中的源文件不计其数,其按类型、功... 博文 来自: zjy900507的博客
Linux下编写makefile文件
02-22 阅读数 9363
首先在vi编辑器下编写add.c #include"test.h"#includeintadd(inta,intb){returna+b;}intmain(){printf(... 博文 来自: wangkuifeng0118的专栏
linux Makefile常用语法持续记录
03-11 阅读数 44
=、:=、?=、+=参数赋值=是最基本的赋值:=是覆盖之前的值?=是如果没有被赋值过就赋予等号后面的值+=是添加等号后面的值$@、$^、$<、$?$@表示目标文件$^表示所有的依赖文件$... 博文 来自: 夏天Alex
Makefile 使用总结
09-24 阅读数 49
1.Makefile简介Makefile是和make命令一起配合使用的.很多大型项目的编译都是通过Makefile来组织的,如果没有Makefile,那很多项目中各种库和代码之间的依赖关系不知会多复杂... 博文 来自: weixin_33754913的博客
Linux makefile语法
05-10 阅读数 84
本文是集中若干篇博客的精华,在此一并表示感谢,文后也会附上相关博客链接。Begin:Makefile的前世今生1.gcc是GNUCompilerCollection(就是GNU编译器套件),也可以简单... 博文 来自: NCU_wander的博客
linux makefile的语法及写法
04-03 阅读数 3686
http://blog.csdn.net/zhoubl668/article/details/3952967 最近在学习Linux下的C编程,买了一本叫《Linux环境下的C编程指南》读到makef... 博文 来自: chungle2011的专栏
Linux编程——makefile编写技巧大全 - bad_good_man的..._CSDN博客
8-23
Linux下Makefile的编写及四个特殊符号的意义@、$@、$^..._CSDN博客
9-1
这传奇你卸载算我输!爆率9.8,不花一分钱,一刀7777亿!
贪玩游戏 · 顶新
很详细、很移动的Linux makefile 教程
09-04 阅读数 5
近期在学习Linux下的C编程,买了一本叫《Linux环境下的C编程指南》读到makefile就越看越迷糊,可能是我的理解能不行。于是google到了以下这篇文章。通俗易懂。然后把它贴出来,方便学习。... 博文 来自: weixin_30906701的博客
Linux下Makefile的学习笔记以及多级目录下Makefile的编写
03-11 阅读数 5471
一、Make简介:工程管理器,顾名思义,是指管理较多的文件,Make工程管理器也就是个“自动编译管理器”,这里的“自动”是指它能够根据文件时间戳自动发现更新过的文件而减少编译的工作量,同时,它通过读入... 博文 来自: zhemingbuhao的博客
Linux makefile 编写详细教程,浅显易懂
03-03 阅读数 647
最近在学习Linux下的C编程,买了一本叫《Linux环境下的C编程指南》读到makefile就越看越迷糊,可能是我的理解能不行。于是google到了以下这篇文章。通俗易懂。然后把它贴出来,方便学习。... 博文 来自: Jerry
Linux下Makefile的编写及四个特殊符号的意义@、$@、$^..._CSDN博客
5-20
Linux下makefile 模板 - robertzhouxh的专栏 - CSDN博客
9-22
Linux下makefile的编写
06-08 阅读数 1205
##Simple.soMakefile#CC :=gccLD :=ldCFLAGS :=LDFLAGS:=-shared-fpicSOURCE :=$(wildcard*.c)OBJS... 博文 来自: 嵌入式相关
跟我一起写 Makefile(十四)
02-24 阅读数 84
使用make更新函数库文件———————————函数库文件也就是对Object文件(程序编译的中间文件)的打包文件。在Unix下,一般是由命令"ar"来完成打包工作。一、函数库文件... 博文 来自: 威尔软件
Linux Makefile文件编写详细步骤与实践
07-21 阅读数 1465
LinuxMakefile文件编写详细步骤与实践 1.makefile概述 Windows环境下IDE会帮你完成makefile文件的编写,但在UNIX环境下你就必须自己写makefile了,会不... 博文 来自: White Beard
Linux下编写 makefile 详细教程
01-03 阅读数 208
本文转载自https://www.cnblogs.com/mfryf/p/3305778.html非常感谢Linux下编写makefile详细教程近期在学习Linux下的C编程,买了一本叫《Linux... 博文 来自: zhangji
Linux 应用---make及makefile的编写
12-23 阅读数 1万+
Make在我们做linux开发中是必不可少的一部分,它在我们编写大型项目工程文件中起到非常大的作用。 Make工程管理器也就是个“自动编译管理器”,这里的“自动”是指它能够根据文件时间戳自动发现... 博文 来自: 知秋一叶
linux下编写的一个最简单的Makefile文件
04-03 阅读数 1万+
Makefile核心要点:1.会不会写makefile从侧面说明了一个人是否具备完成大型项目开发大型工程的能力2.makefile是用来编译链接文件的,实现了自动化编译3.与make指令搭配,一条ma... 博文 来自: Steve_Abelieve
linux上gcc编译问题---math库函数
07-13 阅读数 1251
摘要:使用math.h中声明的库函数还有一点特殊之处,gcc命令行必须加-lm选项使用math.h中声明的库函数还有一点特殊之处,gcc命令行必须加-lm选项,因为数学函数位于libm.so库文件中(... 博文 来自: Leonard's Blog
Linux编程之index和rindex函数
12-08 阅读数 456
在linux编程中,index和rindex函数是两个很有用的字符串处理函数。两个函数原型如下:#include&amp;amp;amp;amp;amp;lt;string.h&... 博文 来自: Damocles_shi的博客
linux下的Makefile文件的简单写法和简单使用
07-17 阅读数 2898
linux下makefile简单基础,关于makefile的第一篇 博文 来自: sx758218950的博客
linux kernol Makefile 语法分析
01-27 阅读数 96
原文地址:Makefile语法分析 作者:小卒-IT Makefile语法分析第一部分VERSION=2#给变量VERSION赋值PATCHLEVEL=6#给变量PATCHLEVEL赋值SUBLEVE... 博文 来自: swj9099的博客
Linux下的Makefile文件编写
08-08 阅读数 603
1、Makefile文件的介绍答:在Linux下Makefile我们可以把理解为工程的编译规则。一个工程中源文件不计数,其按类型、功能、模块分别放在若干个目录中,Makefile定义了一系列的规则来指... 博文 来自: Xiongchao99的博客
make 时必须指定文件作为MakeFile
09-12
所有.c,.h包括MakeFile文件都是放在gcc文件夹下的,刚刚接触,每次都指定的话有点麻烦了,哪位帮我看下问题出在哪里了,谢谢。 论坛
linux 之makefile语法学习1
07-24 阅读数 359
对于makefile,总是忘记,回过头复习,又太麻烦,希望自己把学习的写成日志模块;学习makefile,一定要知道依赖和目标的概念;目标就是我们最终生成的文件,依赖就是我们生成目标文件的文件,通常来... 博文 来自: u012498660的专栏
如何在linux下写makefile
06-24 阅读数 1417
Windows下用集成开发环境(IDE)开发程序时不会涉及到编译、链接的步骤,集成开发环境已经把这些工作给你集成好了,你要做的就是根据语言的语法来编写代码。所以Windows下开发程序对makefil... 博文 来自: 疯流人物
Linux makefile 教程 非常详细,且易懂
08-07 阅读数 414
跟我一起写Makefile陈皓(CSDN)概述——什么是makefile?或许很多Winodws的程序员都不知道这个东西,因为那些Windows的IDE都为你做了这个工作,但我觉得要作一个好的和pro... 博文 来自: fcryuuhou的专栏
Makefile中文教程
08-13 阅读数 246
Makefile中文教程1.概述什么是makefile?或许很多Winodws的程序员都不知道这个东西,因为那些Windows的IDE都为你做了这个工作,但要做一个好的和professional的程序... 博文
阿里资深工程师教你如何优化 Java 代码!
09-17 阅读数 0
博文
GitHub开源的10个超棒后台管理面板
09-21 阅读数 0
博文
100 个网络基础知识普及,看完成半个网络高手
09-23 阅读数 0
博文
Google离开我们快十年了
09-24 阅读数 0
博文
面试官的HTTP五连问法?我竟然回答不上来...
09-25 阅读数 0
博文
中国最顶级的一批程序员,从首富到首负!
09-24 阅读数 0
博文
为什么面向对象糟透了?
09-23 阅读数 0
博文
分享靠写代码赚钱的一些门路
09-26 阅读数 0
博文
对计算机专业来说学历真的重要吗?
09-27 阅读数 0
博文
在线就能用的Linux我给你找好了
09-27 阅读数 0
博文
世界上最好的学习法:费曼学习法
09-27 阅读数 0
博文
学Linux到底学什么
09-27 阅读数 0
博文
深入理解C语言指针
09-28 阅读数 0
博文
C语言实现推箱子游戏
09-29 阅读数 0
博文
面试官:兄弟,说说基本类型和包装类型的区别吧
09-29 阅读数 0
博文
8000字干货:那些很厉害的人是怎么构建知识体系的
09-29 阅读数 0
博文
Android完整知识体系路线(菜鸟-资深-大牛必进之路)
09-29 阅读数 0
博文
C语言这么厉害,它自身又是用什么语言写的?
09-27 阅读数 0
博文
Java版的7种单例模式
09-30 阅读数 0
博文
彻底搞懂JVM类加载器:基本概念
10-01 阅读数 0
博文
开源大阅兵:盘点那些走向世界的中国项目
10-02 阅读数 0
博文
计算机非科班工作后如何爬出技术的绝望之谷,走向开悟之路
10-03 阅读数 0
博文
Python使用tkinter模块实现推箱子游戏
10-06 阅读数 0
博文
认真推荐几个不错的技术公众号
10-03 阅读数 0
博文
NULL,0,`0`,`\0`,"0"你分得清吗?
10-04 阅读数 0
博文
Python 愤怒的小鸟代码实现(1):物理引擎pymunk使用
10-06 阅读数 0
博文
国产阿里OCEANBAS勇夺TPC-C冠军,200行代码解读它的速度源头
10-04 阅读数 0
博文
Java 初级面试题(持续更,近期更新时间:2019/10/11)
10-04 阅读数 0
博文
前端开发必备网站推荐
10-05 阅读数 0
博文
中国物联网激荡20年
10-05 阅读数 0
博文
写个最简单的植物大战僵尸修改器吧!c和python
10-05 阅读数 0
博文
【java基础之异常】死了都要try,不淋漓尽致地catch我不痛快!
10-06 阅读数 0
博文
Vue 3.0 源码开放,看看都有哪些新特性
10-06 阅读数 0
博文
没有更多推荐了,返回首页
©️2019 CSDN
皮肤主题: 大白
设计师:
CSDN官方博客