【Linux】 C编程之 makefile使用

本文深入解析了C语言开发中Makefile的使用,包括其基本语法、执行过程、注意事项以及高级特性,帮助开发者高效管理源代码,实现自动化构建。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一,示例

       四个文件:main.c;main.h;t_print.c;t_print.h

       makefile:写法1)   

main:main.o t_print.o
	gcc main.o t_print.o -o main 
main.o:main.c main.h
	gcc -c main.c
t_print.o:t_print.c t_print.h
	gcc -c t_print.c
clean:
	rm  main.o t_print.o
        执行:make  或 make main

        删除中间文件: make clean
                

                      写法2)                      

main:main.o t_print.o
	gcc main.o t_print.o -o main 
main.o:main.c main.h
	gcc -c main.c
t_print.o:t_print.c t_print.h
	gcc -c t_print.c
       执行:make  或 make  main

                       写法3)

main:main.o t_print.o
	gcc main.o t_print.o -o main 
       执行:make  或 make  main

make 命令会自动推导 main.o的产生所需要的文件

                        写法4)

object=main.o t_print.o

main:$(object)
	gcc $(object) -o main 
clean:
	rm  $(object)

  这里使用了变量,但是依赖关系显得有些不清楚。

  【特别注意】gcc 前面是 Tab空格键

二,make 执行过程

       1)make 在当前目录下找 "Makefile"或"makefile"的文件

       2)如果找到,则会找文件中第一个目标文件(target)。如上例子中main

       3)如果 main 命令的执行,依赖后面命令执行所产生的文件,则先执行后面命令

       4)当main 命令需要的文件生成完毕,则执行main 命令

三,细节

        1)可以使用其他的文件名作为makefile  如 Make.linux

                make -f  Make.linux    //-f  file 指定文件

        2)makefile 中还可以包含其他文件例如

                makefile:       

object=main.o t_print.o

main:$(object)
	gcc $(object) -o main 
clean:
	rm  $(object)
include aa
                aa:
cleanmain:
	rm main
               执行:make   cleanmain想当于执行  rm  main

           说明:make命令开始时,会把找寻include所指出的其他file,并把file中内容放置在当前位置

         3)makefile中某条命令前加上 "-"表示无论发生什么错误,都不要报错继续执行

              -rm  main.o  t_print.o // 可以写成通配符  rm   *.o

   

-----夜已经深了----未完待续-----










       

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值