Linux下学C语言——第十五节 终端编译makefile

编程入门 行业动态 更新时间:2024-10-09 04:22:59

Linux下学C语言——第十五节 <a href=https://www.elefans.com/category/jswz/34/1771374.html style=终端编译makefile"/>

Linux下学C语言——第十五节 终端编译makefile

快捷键

touch main.c tool1.c  tool1.h tool2.c tool2.h //创建这些文件

vim * -p //打开所有文件编辑

gt//切换vim内的页面

gcc *.c//全部编译

rm A //删除文件

vim makefile //make的文件

make //执行makefile文件

make clean //调用makefile文件中的clean函数

拷贝A到B:cp A B

编写的makefile文件:帮助项目解决因部分文件变化导致的编译困难

//目标文件:源文件

//生成工具gcc 源文件 -o 目标文件

mytool: main.o tool1.o tool2.o

        gcc main.o tool1.o tool2.o -o mytool

//目标文件:源文件

//生成工具gcc 源文件 -汇编c -报错W -调试g -生成o 目标文件

main.o: main.c

        gcc main.c -c -Wall -g -o main.o

tool1.o :tool1.c

        gcc tool1.c -c -Wall -g -o tool1.o

tool2.o: tool2.c

        gcc tool2.c -c -Wall -g -o tool2.o   

//clean函数

//删除 所有 .o文件  执行文件 递归删除

clean:

        rm *.o mytool -rf

简化://$^代替源文件

//$@代替目标文件

//$( )代替描述词

OBJS = main.o tool1.o tool2.o

CC = gcc

CFLAGS += -c -Wall -g

mytool: $(OBJS)

        $(CC)  $^  -o  $@

main.o: main.c

        $(CC) $^ $(CFLAGS) -o $@

tool1.o :tool1.c

        $(CC) $^ $(CFLAGS) -o $@

tool2.o: tool2.c

        $(CC) $^ $(CFLAGS) -o $@

clean:

        $(RM) *.o mytool -rf

简化://把上述中间三行提取公式,%代替过程文件

//切记空格和tab空格不可缺

OBJS = main.o tool1.o tool2.o

CC = gcc

CFLAGS += -c -Wall -g

mytool: $(OBJS)

        $(CC) $^ -o $@

%.o: %.c

        $(CC) $^ $(CFLAGS)  -o $@

clean:

        $(RM) *.o mytool -rf

最终简化:

all:list

list:main.o list.o

        $(CC) $^ -o  $@

clean:

        rm   *.o list -rf

执行:

[tom@CentOS7 testmake]$ make

make: “mytool”是最新的。

[tom@CentOS7 testmake]$ make clean

rm -f *.o mytool -rf

[tom@CentOS7 testmake]$ make

gcc main.c -c -Wall -g -o main.o

gcc tool1.c -c -Wall -g -o tool1.o

gcc tool2.c -c -Wall -g -o tool2.o

gcc main.o tool1.o tool2.o -o mytool

[tom@CentOS7 testmake]$ ./mytool

tool1 print

tool2 print

更多推荐

Linux下学C语言——第十五节 终端编译makefile

本文发布于:2024-02-28 02:16:32,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1767422.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:终端   语言   第十五节   Linux   makefile

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!