更多配套资料CSDN地址:点赞+关注,功德无量。更多配套资料,欢迎私信。
物联技术666_嵌入式C语言开发,嵌入式硬件,嵌入式培训笔记-CSDN博客物联技术666擅长嵌入式C语言开发,嵌入式硬件,嵌入式培训笔记,等方面的知识,物联技术666关注机器学习,arm开发,物联网,嵌入式硬件,单片机领域.https://blog.csdn.net/weixin_39804904?type=blog
Makefile规则如下所示:
Makefile只会执行第一个目标,如果第一个
目标和下面的目标没有关联就不会执行。
-------------------------
$* 不包含扩展名的目标文件名称。
$@ 目标的完整名称。
$< 第一个依赖文件的名称。
$^所有的依赖文件,以空格分开,不包含重复的依赖文件。
$+ 所有的依赖文件,以空格分开,并以出现的先后为序,可能包含重复的依赖文件
$? 所有的依赖文件,以空格分开,这些依赖文件的修改日期比目标的创建日期晚。
--------------------------
目标:依赖文件列表
-----
例如:
main:main.c
gcc main.c -o main
-------------------------
Makefile中的变量
设定变量:变量名=变量值
引用变量:$(变量名)
------
上例:
OBJ = main
CC = gcc
$(OBJ):main.c
$(CC) main.c -o $(OBJ)
-----------------------------------
Makefile具有自动寻找功能
-----
例如:设有mytest.c mylib.c还有头文件在当前路径
SS=gcc
test: mytest.o mylib.o
$(SS) mytest.o mylib.o -o test
mytest.o:
mylib.o:
--------------------------
编译2个不同的执行程序,例子:
TARGET = udp_echo_srv udp_echo_cli
CFLAGS = -Wall
CC = gcc
all:udp_echo_srv udp_echo_cli
udp_echo_srv:udp_echo_srv.c
gcc udp_echo_srv.c -o udp_echo_srv $(CFLAGS)
udp_echo_cli:udp_echo_cli.c
gcc udp_echo_cli.c -o udp_echo_cli $(CFLAGS)
clean:
rm -rf *.o $(TARGET)
----------------------------