Makefile概述

车载监控系统升级指南:如何用XS9950A替换TP9950实现高清视频解码(附配置代码) 本文提供了从TP9950升级至XS9950A车载视频解码芯片的完整实战指南。详细解析了硬件设计调整、PCB布局要点,并重点分享了通过I2C配置寄存器实现高清HDCCTV视频解码与同轴音频集成的软件驱动代码与调试技巧,助力工程师平滑完成系统升级。 阅读详情

概述
make是UNIX®下的一个工具,用来自动创建程式并且进行优化. 当你研发的程式由许多组件或源文件组成时他特别有用.
一个叫makefile的描述符文件阐明了源文件之间的关系,并给出更新每一个文件的命令. 所有时候当源文件之一有所改动,make就调用 makefile自动重建这个程式. 因为仅重编译那些受改动影响的文件,因此节约了编译时间.同时也有助于降低用命令行建立这些条目时发生人为错误的可能性.
除了编译以外, make也是个可用于程式安装和更改系统设置的有效工具.
makefile介绍
为每一个工程创建一个名为makefile的设置文件. 每次修改源程式后, 用简单的命令make调用makefile来执行必要的重编译. make在当前工作目录中按以下的顺序查找这个描述文件:
makefile
Makefile
缺省条件下, 简单的make命令只创建文件中第一个目标. make命令的其他一般用法如下.
make prog1
建立目标 "prog1"
make -f mymakefile
用 "mymakefile" 作设置文件建立源文件中的第一个目标
make -f mymakefile prog1
用 "mymakefile" 作设置文件建立目标 "prog1"
makefile组成
makefile包含的五个主要部分是: 注释, 显式规则, 变量定义, 隐式规则及指示.
注释
Makefile中以字符“#”开始的行为注释行;在一行中字符“#”之后的内容也被看做为注释(和shell脚本一样)。注释行结尾如果使用反斜线 \,那么此行之下的一行(下一行)也被看做为注释行。在书写Makefile时推荐将注释作为一个独立的行,而不要和Makefile的有效内容放在同一行。当Makefile中需要使用字符“#”时,可使用反斜线加“#”(\#)来实现(对具有特殊含义字符“#”进行转义),其表示 “#”在这里是作为一字符而不是注释的开始标志。

详细出处参考:http://www.itqun.net/content-detail/289622.html显式规则
makefile由’规则’(rules)组成. 规则说明在何时和怎么重建某些文件,这些文件又可能是其他一些特定文件的目标. 规则由三部分组成: 一个或多个目标(target), 零个或多个先决条件(prerequisites), 零个或多个命令(command).
target ... : prerequisites  
         command
          ...
          ...
目标是make创建的域的通常叫法;例如可执行文件或目标文件. 目标也能是要执行的动作的名字, 例如, clean (见
伪目标
). 一旦所有先决条件变化将引起目标被创建. 如果目标存在且比他的先决条件新,则认为目标是"最新"的.
先决条件是个或多个文件,作为创建目标的输入. 先决条件的目的是定义某些目标对某些源文件的依赖属性.
命令是在有先决条件的规则之中. 他是当所有先决条件改动时make创建或更新目标采取的动作. 一条规则可包含多个命令. 每个在规则中执行的命令由shell解释执行. 缺省情况下, make用/bin/sh shell. 宏SHELL = bin/sh将覆盖缺省shell.
make的执行
make遵循"依赖规则"概念; make 读取当前目录下的makefile,从处理第一个目标开始. make查找每个目标的依赖(先决条件)以知道他们是否也作为目标列了出来 .
make沿依赖链遍历整个递归链直到发现一个没有先决条件的目标,或其先决条件没有规则. 一旦到达依赖链的末端, make便返回递归,在返回的过程执行每条目标规则中的命令. 对于遇见的所有有规则的先决条件, make采用同样的模式处理 .
一旦所有先决条件规则运行完了, make最后返回第一个目标 . 如果目标不存在, 或目标比他目前的先决条件生成的早, make运行命令来生成目标, 如以下是个makefile的例子 (例 1.0).
# Example 1.0
# Linking object files
prog1 : main.o file1.o \
       file2.o display.o
          cc -o prog1 main.o file1.o \
                  file2.o display.o
# Compiling source files
main.o : main.c mydefs.h
cc -c main.c
file1.o : file1.c mydefs.h
cc -c file1.c
file2.o : file2.c command.h
cc -c file2.c
display.o : display.c command.h
cc -c display.c
# Compiling source files
..PHONY : clean
clean :
         rm prog1 *.o
# End of makefile  
注意: 参考
命令回显
.
在前面的例子中, 我们已给变量objs赋了值.
objs = main.o file1.o file2.o display.o
一旦变量定义好了, 他的值能用$(variable)或 ${variable}提取出来. 然而, 如果圆括号遗漏了, 那么只有变量名的第一个字符被用到. 因此:
?$(objs)得到变量objs的值.
?$objs 得到变量 o 的值(如果有变量o).
make能灵活的使用未定义的变量; 这种情况下值返回空串. 在设定一个变量前, make能用快捷符’?=’检查他是否已被设置. 下面的例子检查 foo是否已被设置:
foo ?= bar
如果没有, make 将分配给他一个值.
引用替换和计算变量名
更有两个引用变量的高级特性是引用替换和计算变量名.
?引用替换
引用替换用你指定的值替换变量的值. 他的格式象这样:’$(var:x=y)’, 意思是取得变量 var的值, 用y替换变量值中每个单词结尾处的x, 并取代结果字串. 下面的例子设定bar为a.c b.c c.c:
foo := a.o b.o c.o
bar := $(foo:.o=.c)
?计算变量名
在变量名内部能引用另一个变量; 这称为计算变量名.
例:
a = b
b = c
x  :=   $($(a))
本例赋x值为’c’. $(a)展开为 ’b’, 所以$($(a))即$(b); 而 $(b)展开为’c’.
递归扩展和简单扩展变量
变量有两种方法获得值, 递归扩展变量和简单扩展变量.
递归扩展变量
简单扩展变量

行赋值用’=’ 或 用 "define" 指示
用行’:=’赋值
值的指定是逐字被装配的.
变量在定义时一次扫描获得其值
不论何时变量被替代都展开对其他变量的参考.
不包含对其他变量的参考; 包含他们被定义的值.
例:
       foo = $(bar)
       bar = $(yep)
       yep = hello
命令:
       all :;echo $(foo)
将显示’hello’.   $(foo)将展开为$(bar), $(bar)展开为$(yep)最终展开为’hello’.
例:
       a :=   foo          
       b :=   $(a) bar
       a :=   hello
等价于:
       b :=   foo bar         
       a :=   hello
执行是有目的的,却导致make运行速度非常慢, 因为每当变量扩展时在此定义中的引用都要执行一遍.
更容易预测复杂的makefile的编写.
给变量添加更多文本
我们常需要给一个已存在的变量添加更多的文本. 快捷操作符 ’+=’ 提供了这种灵活性. 在下面这个例子中, 先取得objs的值然后给这个值加上文本file3.o :
objs   +=   file3.o
这样我们就能够设定objs为main.o file1.o file2.o display.o file3.o:
objs =   main.o file1.o file2.o display.o
objs +=   file3.o
自动变量
基于规则的目标和先决条件,此类变量的值在每条已执行的规则中都各不相同. 在下一节
隐式规则
的例1.2中, ’$@’ 用于目标文件名, ’$+’ 用于源文件名.
通用的自动变量包括以下这些.
$@
规则目标的文件名
$%
目标成员名, 此时目标是个归档成员
$
第一个先决条件名
$?
所有比目标新的先决条件名
$^
全体用空格符分隔的先决条件名
$+
类似于’$^’, 不过重复的先决条件会以他们在 makefile中列出的次序多次列出。
特定目标和特定模式的变量值
?特定目标变量值
根据make所建目标的不同,这个功能能为相同的变量赋不同的值. 该值在目标的命令脚本的上下文中局部可用. 格式如下:
target ... : variable-assignment
下面的语句在prog1及他的先决条件的命令脚本中设置CFLAGS为-g :
prog1 : CFLAGS = -g
prog1 : main.o file1.o file2.o display.o
?特定模式变量值
此特征让你为所有匹配这种特别模式的目标定义一个变量. 模式表示为 ’%’. 接下来的例子中,对于所有匹配模式%.o的目标分配给CFLAGS值-o:
%.o : CFLAGS = -o
(更多信息请参考
附加参考
.)
隐式规则
隐式规则告诉make怎么采用惯例方法,这样就不必在每次用到时都要周详指定他们. 其中一条隐式规则是用cc -c命令更新文件’.o’,其源文件是相应的’.c’文件. 用隐式规则, 前一个例子中的makefile能写成下面的形式(例 1.2).

# Example 1.2
#1
# Defining the compiler
CC=gcc
#2
# Defining the object (objs)   variable
objs = main.o file1.o file2.o display.o
#3
# Linking object files
prog1 : $(objs)
       $(CC) -o $@ $+
       echo prog1 : make complete
#4
# Tell make how to build .o from .c files
%.o:%.c
      $(CC) -c $+
#5
# Compiling source files.
main.o : mydefs.h
file1.o : mydefs.h
file2.o : command.h
display.o : command.h
#6
# Removing the executable and object files
..PHONY : clean
clean :
      rm prog1 $(objs)
      echo clean : make complete
# End of makefile

注意:
1.编译器变量提供了对同一个makefile使用不同的编译器的灵活能力.
2.变量objs定义为全体目标文件.
3.’$@’自动变量意思是目标, ’$+’ 意思是全体以空格分隔的先决条件.
4.模式规则告诉 make怎么转换*.c 文件为 *.o 文件.
5.make有一个内建模式将*.h文件转换为依赖*.o文件.
6.make删除现有目录下的prog1和全部对象文件 (见
伪目标
).
以隐含规则建立的命令用到某些预定义的变量, 这些变量分成两类: 一类是程式名 (象 CC) 另一类是对应这些程式的特定变量 (如 CFLAGS).
如下是一些内建规则中用作程式名的变量.
AR
存档文件维护程式, 缺省是 ar
AS
做汇编的程式, 缺省是 as
CC
编译C程式的程式, 缺省是 cc
CXX
编译C++程式的程式 , 缺省是 g++
RM
删除文件命令, 缺省是 rm -f
下列一些变量他们的值是程式附加的参数.
ARFLAGS
给归档维护程式的标志; 缺省是 rv
ASFLAGS
给汇编器的额外标志
CFLAGS
给C编译器的额外标志
CXXFLAGS
给C++编译器的额外标志
指示
"Define" 指示

define指示给变量赋值. define指示和跟着的变量名在同一行. 变量值在下一行. 最后一行的endef表示define结束. define作用类似于’=’, 举例如下:
define two-lines
echo foo
echo $(bar)
endef
普通变量赋值和define指示的差别在于普通赋值不能含换行符, 而在define的值里分割行的换行符成为变量值的一部分.
以上例子功能等同于:
two-lines = echo foo; echo $(bar)
以分号分开的两条命令作用非常象两条分别的shell命令. 然而, 注意到分在两行make将调用两次shell, 对每一行运行一次独立的子shell.
"Include" 指示
指示include告诉make暂停读取当前makefile转而读取每一个列出的文件. 读完以后, make 在指示中出现的地方重新读取makefile. 格式如下:
include filenames...
filenames能含shell文件名模式.
举个例子, 如果你有三个 ’.mk’ 文件, ’x.mk’, ’y.mk’, 及 ’z.mk’, 并且$(bar)是展开为 bish bash, 那么下列表达式:
include foo *.mk $(bar)
等价于:
include foo x.mk y.mk z.mk bish bash
include指示的一个用法是分配一个公共变量定义集给被各自"makefile"文件处理的程式 .
"Override" 指示
override 指示能设置makefile中已用命令参数设置过的变量. 格式如下:
override variable = value
给在命令行中定义的变量添加文本, 用:
override variable += more text
此指示被发明来做更改或增加用户在命令行中指定的值. 举例来说, 假定你总是希望C编译器用-g开关, 不过你又不想让用户象通常相同用命令参数指定其他开关. 你能用override指示:
override CFLAGS += -g
命令回显
make在一行被执行前先显示他, 叫做回显. 以’@’起始的命令则不回显 . echo也能用来指示makefile的进度. 如下所示:
echo prog1 : make complete
加上-n标志, make只回显命令但不真正执行他们. 只有这种情况, 即使命令以 ’@’ 开头亦会显示. 为防止一切回显, 能用-s标志. 输出就如同每条命令都以’@’开头.
伪目标
伪目标不是个文件名而是由一个显式请求引起的动作. 在伪目标中的命令不创建所有目标, 但每次目标发生重建时命令都要执行. 举例如下:
clean :
         rm prog1 *.o
当命令象下面这样显式的调用时,将删除 prog1及所有目标文件:
make clean
因为rm不是创建一个名为 clean的文件, 可能这个文件根本不曾存在. 但如果某人确实在这个目录下建了名为clean的文件, 伪目标将停止工作. 文件clean在没有先决条件时将不可避免的被认为是最近更新的, 他的命令也不会执行.
为避免这个问题, 目标被定义为 .PHONY. 在下面的例子中, make clean 将运行命令而不论是否真有名clean 的文件:
.PHONY   :   clean
clean   :
          rm   prog1   *.o
在文件名中用通配符
单个文件名用通配符可指代多个文件. make在目标先决条件, 命令和变量中用到通配符 ’*’, ’?’, 及’[...]’. 通配符能用在规则命令中, 这些命令被shell展开. 例如, 这是删除所有目标文件的规则:
clean:
       rm *.o
当你定义变量时通配符是不会展开的. 即, 如果你这样写:
objects = *.o
那么变量对象的值是真实的字符串 ’*.o’.
命令中的错误
命令执行完以后, make 检查退出状态以验证其已成功完成, 同时发送下一条命令到新shell. 如果返回错误, make 放弃当前规则,非常可能放弃所有规则. 要忽略命令行中的错误, 在行开头加上’-’号 (在初始的tab后). ’-’号在命令传递给shell执行前丢弃. 下面的例子即使rm不能删除文件他也继续运行, :
clean:
       -rm   -f   *.o
类似的特性也能通过在make后加-i参数实现; 全体规则中的全部命令的错误都被忽略.
并行执行
缺省情况下, make一次只运行一条命令, 在执行下一条命令前等待上一条命令执行结束. make用’-j’选项能同时执行多条命令. ’-j’选项后缀的整数指定一次能运行作业的数量.
用make更新归档文件
被叫做成员的归档文件通常用作链接的子程式库. 他们由程式ar维护. 格式如下:
archive(member)
make中独立的文件成员能作为目标或先决条件. 在下面的例子中, 是要通过复制文件foo.o在归档sublib中创建成员foo.o :
sublib(foo.o)   :   foo.o
          ar   cr   sublib foo.o


Claude Code 学习笔记之一:理解 Agentic Loop 与内置工具 本文介绍了Claude Code这一终端智能助手的工作原理与使用方式。作者从ABAP开发经验出发,指出学习Claude Code的高级用法具有长期价值。文章详细解析了Claude Code的Agentic Loop机制:通过大语言模型进行推理,借助各类工具执行任务,并循环收集上下文、执行操作、验证结果三个步骤。系统阐述了Claude Code支持的五大类工具及其扩展方式,说明了其访问本地资源的范围和自治处理能力,同时介绍了权限模式等安全机制。最后提供了从小任务开始、充分探索、及时引导、使用CLAUDE.md 阅读详情

相关推荐

基于ESP32的摩托车蓝牙对讲系统开发实践

蓝牙音频传输技术在现代通信中扮演着重要角色,其核心原理是通过无线射频实现数字音频信号的双向传输。在工程实践中,蓝牙HFP协议常用于语音通信场景,而ESP32等嵌入式平台因其低成本和高集成度成为DIY项目的理想选择。本项目通过ESP32-WROOM-32D开发板结合PCM5102 DAC和INMP441数字麦克风等模块,构建了一套摩托车骑行专用的蓝牙对讲系统。该系统特别针对高速移动环境下的风噪抑制和连接稳定性进行了优化,采用数字信号处理技术实现实时降噪,并通过I2S接口确保音频质量。这种方案不仅成本控制在30

weixin_33239721的博客 414

Scratch《打地鼠》游戏源码.sb文件

Scratch《打地鼠》游戏源码.sb文件下载地址:https://download.youkuaiyun.com/download/u011152234/86264220

u011152234的博客 836

原理图分享二(信盈达CorexM4核心板STM32F407VGT6)

这是第二张板子的原理图分享,这也是当时大学里学习的一个板子。 原理图分享二(信盈达CorexM4核心板STM32F407VGT6)

让学习成为一种习惯 6895

Makefile教程(一)

基础知识 make工程管理工具:帮助我们实现项目的自动编译 在c语言中,只有源文件才会参与编译。如果某些源文件做了修改,整个项目都需要重新编译的做法很笨,但是make工具很聪明,它可以帮我们自动判断,哪些文件做了修改,就编译哪些文件。Makefile仅仅是一个文件,里面有很多规则,来说明如何编译,编译顺序,Makefile中制定的规则,会由make这个工具来执行。 当想要自己指定makefile文件名的时候,可以使用以下命令 make -f my_makefile makefile中的规则组成 目

myWorld001的博客 280

某讯天御滑块验证码逆向实战:从参数解析到环境对抗

本文详细解析了某讯天御滑块验证码的逆向工程实战技巧,从关键参数解析到浏览器环境模拟对抗。重点介绍了collect、eks等参数的逆向思路,以及如何通过puppeteer等工具补全环境检测,帮助开发者有效突破验证码防护。文章还提供了常见错误解决方案和性能优化建议,是验证码逆向领域的实用指南。

weixin_29325007的博客 440

利用ORCAD/pspice 仿真分析电路的幅度相位谱

利用ORCAD的pspice仿真分析电路的相位谱1.介绍2.搭建电路原理图3.建立仿真文件,进行交流分析4.仿真、查看输出5.总结 1.介绍 orcad配合pspice一直是电路原理图绘制和仿真的主要工具,pspice工具提供了诸如暂态分析、直流分析、交流分析等多个工具。学校主要教的是multisim,对orcad讲得很少,最进要利用orcad对运放构成的电路的频响、相移特性进行分析,发现资料幅度...

qq_40011737的博客 1万+

深入学习Make命令和Makefile(下)

https://www.zybuluo.com/lishuhuakai/note/209300 make是Linux下的一款程序自动维护工具,配合makefile的使用,就能够根据程序中模块的修改情况,自动判断应该对那些模块重新编译,从而保证软件是由最新的模块构成。本文分为上下两部分,我们在上一篇文章中分别介绍了make和makefile的一些基本用法,在本文中,我们会对make和makefi...

weixin_34253539的博客 159

激光可燃气体传感器:核心技术环节分析

激光可燃气体传感器核心技术涵盖七个维度:1)TDLAS光谱吸收与调制技术(检测下限ppm级);2)DFB激光器与双闭环温控系统(波长稳定性±0.0036nm);3)微弱信号处理技术(信噪比提升60dB);4)环境补偿算法(温压补偿误差<±1%);5)本质安全防爆设计(ExiaIICT4Ga等级);6)智能边缘计算(STM32L476芯片);7)多重性能验证(响应时间<1秒)。通过微型化、多气体检测等创新,该技术已在工业安全等领域替代传统方案,实现高精度检测。(149字)

上市公司前技术负责人,20 年软硬件深耕 + 百人研发团队管理经验,名校理工科背景加持。从技术攻坚到团队掌舵,沉淀海量项目实战与管理心得,专注分享软硬件干货、疑难问题解决方案,既是靠谱知识传播者,也盼链接优质项目共成长。 1044

my_MakeFile

TARGET = main CC = gcc CFLAG = -Wall -g LDFLAG = -lpthread INC =-I./inc OBJS = ./client_fun.o ./client_show.o \ ./socket.o ./main.o \ $(TARGET):$(OBJS) $(CC) $^ -o $@ $(LDFLAG) %.o:%.c

天天water的专栏 4277

智慧楼宇解决方案-全套大合集

智慧楼宇解决方案,楼宇能耗-环境-设备统一管控解决方案。

byte58的博客 2592

用AI科研绘图全新升级!借助谷歌新发布模型Nano Banana pro实测一键绘制机制图与技术路线图,直接告别文字乱码与低画质

之前有同仁反馈,用Nano Banana画科研插图的时候,要么文字部分容易乱码,要么抓不住关键内容,画出来的效果反复修改后,还是达不到理想的效果。终于在Gemini 3发布没几天,万众期待的大香蕉模型也成功升级到了Pro版本,官方名称叫“Gemini 3 Pro Image”,实际上也就是我们说的Nano Banana 2。这次的Nano Banana Pro模型,不仅可以直出4K高清图,还能自定义比例,推理能力和中文文字的稳定性也得到了提升。

智能AI让学术科研更容易 1889

深入学习Make命令和Makefile(上)

https://www.zybuluo.com/lishuhuakai/note/209302 深入学习Make命令和Makefile(上) make是Linux下的一款程序自动维护工具,配合makefile的使用,就能够根据程序中模块的修改情况,自动判断应该对那些模块重新编译,从而保证软件是由最新的模块构成。本文分为上下两部分,我们将紧紧围绕make在软件开发中的应用展开详细的介绍。 ...

weixin_33759269的博客 168

ABAP SQL Hierarchy 全景参考,组织树、分类树与递归查询在数据库层的优雅落地

ABAP SQL中的hierarchy语法为树形数据结构处理提供了高效方案。S/4HANA系统中常见的成本中心、利润中心、物料分类等树形结构,传统开发需通过递归和嵌套循环处理,而ABAP SQL hierarchies通过将层级遍历能力下沉到SQL层,借助SAP HANA的层级函数支持,实现了更高效的查询。 该功能要求ABAP 7.51+版本,支持两种实现方式:CDS hierarchy用于创建可复用的稳定层级模型,适合业务核心数据;ABAP SQL HIERARCHY generator则适用于临时性层级

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 313

Linux kernel Makefile框架概述

Linux kernel Makefile框架概述

wangjingyu00711的专栏 222

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

Makefile之概述

—— 什么是makefile?或许很多Winodws的程序员都不知道这个东西,因为那些Windows的IDE都为你做了这个工作,但我觉得要作一个好的和professional的程序员,makefile还是要懂。这就好像现在有这么多的HTML的编辑器,但如果你想成为一个专业人士,你还是要了解HTML的标识的含义。特别在Unix下的软件编译,你就不能不自己写makefile了,会不会写makefil

L_Nan的专栏 837

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

Makefile的概述

Makefile的简单使用

m0_69211839的博客 448

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

makefile 概述

一、Make的概念 Make这个词,英语的意思是”制作”。Make命令直接用了这个意思,就是要做出某个文件。比如,要做出文件a.txt,就可以执行下面的命令。 $ make a.txt 但是,如果你真的输入这条命令,它并不会起作用。因为Make命令本身并不知道,如何做出a.txt,需要有人告诉它,如何调用其他命令完成这个目标。 比如,假设文件 a.txt 依赖于 b.txt 和

dream_house的博客 269

makefile概述

转 http://blog.youkuaiyun.com/zhoubl668/archive/2009/03/03/3952967.aspx makefile概述-------------------------------------------------------------------------------- 什么是makefile?或许很多Winodws的程序员都不知道这

记录学习、实践过程 525

Makefile工程概述

Hello,大家好,我是小珑也要变强(也是小珑),我是易编程·终身成长社群的一名“创始团队·嘉宾”和“内容共创官”,现在我来为大家介绍一下有关物联网-嵌入式方面的相关内容。Makefile主要使用在没有集成开发环境时,对工程文件进行自动化编译的工具。Makefile的本质是一个文件,需要配合make命令进行自动化编译。文件名常首字母大写。文件的命名:makefile 或者 Makefile。(推荐首字母大写的用法)

weixin_74300052的博客 745

跟我一起写Makefile:概述

什么是makefile?也许非常多Winodws的程序猿都不知道这个东西。由于那些Windows的集成开发环境(integrateddevelopment environment,IDE)都为你做了这个工作,但我认为要作一个好的和professional的程序猿,makefile还是要懂。这就好像如今有这么多的HTML的编辑器。但假设你想成为一个专业人士,你还是要了解HTML的...

weixin_34204722的博客 76

跟我一起写Makefile—概述

概述 —— 什么是makefile?或许很多Winodws的程序员都不知道这个东西,因为那些Windows的IDE都为你做了这个工作,但我觉得要作一个好的和professional的程序员,makefile还是要懂。这就好像现在有这么多的HTML的编辑器,但如果你想成为一个专业人士,你还是要了解HTML的标识的含义。特别在Unix下的软件编译,你就不能不自己写makefile了,会不会写m

wh19911010的博客 246

Make与Makefile概述

**Make**是一个自动化构建工具,它通过读取名为**Makefile**的配置文件,确定项目中文件之间的依赖关系,并基于这些关系决定哪些部分需要重新构建,以及以何种顺序构建。

ScilogyHunter的博客 1930

Makefile讲解概述

概述 —— 什么是makefile?或许很多Winodws的程序员都不知道这个东西,因为那些Windows的IDE都为你做了这个工作,但我觉得要作一个好的和professional的程序员,makefile还是要懂。这就好像现在有这么多的HTML的编辑器,但如果你想成为一个专业人士,你还是要了解HTML的标识的含义。特别在Unix下的软件编译,你就不能不自己写makefile了,会不会写makefile,从一个侧面说明了一个人是否具备完成大型工程的能力。 因为,makefile关系到了整个工程的编译规则。一

xujianjun229的博客 202
上一篇: Shell脚本调试技术
下一篇: C++ API封装
BlueSy2008
博客等级 码龄20年 26粉丝 26原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值