嵌入式培训机构四个月实训课程笔记(完整版)-Linux基础第三天-makefile规则(物联技术666)

 更多配套资料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)  

----------------------------

你可能感兴趣的:(嵌入式培训笔记,笔记,linux,运维,c语言,开发语言)