Makefile 编写(make命令编译)

本文详细介绍了一个具体的Makefile案例,从编译规则到依赖管理,再到变量定义与使用,包括gcc和g++的选择、编译选项的设置等。此外,还介绍了如何通过通配符自动匹配文件,以及如何定义和使用伪目标。

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

显示规制

#hello 输出目标
#gcc hello.c -o hello 编译规则
# 编译规则 TAB 空格
hello:
gcc hello.c -o hello
hello : 依赖的目标的是空 ,每一次编译用 hello 和当前目录下 hello 文件进行比较

显示规则 (明白写出编译规则)
隐示规制
变量
变量=变量值
TAR=hello

追加方式:
变量+=变量值1
变量+=变量值2
变量的解引
$(TAR)

Makefile 脚本
1 #———————————————————————————————–
2 # hello Makefile target
3 #
4
5
6 # 显示规制
7 #hello 输出目标
8 #gcc hello.c -o hello 编译规则
9 # 编译规则 TAB 空格
10 #目标 hello 依赖的是 hello.c (每次编译都对这两个文件的保存时间)
11 # 依赖的目标必须存在
12
13#递归思想
14
15 GCC=gcc 编译器选型
16 CXX=c++
17
18 CLFLAG=-I ./include -Wall -g 路径: I 标准库 ./include 自定义头文件 -Wall 警告 -g 调试
19 LIB = ./lib/lib_max.so ./lib/lib_min.so -lm 自定义动态库,,数学标准库
20
21 ALL+=hello.o 前缀以hello为名的源文件
22 ALL+=test.o 前缀以hello为名的源文件
23
24 TAR=hello 可执行文件
25 # 26(TAR):(ALL)                                                                    #hello:hello.0  test.o  
 27
(GCC) (ALL)o(TAR) (CLFLAG)(LIB)
gcc hello.o test.o -o hello -I ./include -Wall -g ./lib/libget_str_len.so ./lib/lib_max.so ./lib/lib_min.so -lm
28 rm -f (ALL)       #rm -f   hello.o   test.o  
 29   
 30 # .o 是放在 @ , .c 放在 <  ;             %:通配符 -> 自动提取出名字 tsst.o: test.c (自动提取相同前缀名)   
 31 %.o:%.c  
 32
(GCC) -c <o@ (CLFLAG)333435(GCC) -c <o@ (CLFLAG)3637(CXX) -c <o@ (CLFLAG)   
 38   
 39 # 定义一个伪目标  
 40 .PHONY:clean  
 41 clean:  
 42         rm -f
(ALL) $(TAR)
43
44
45
46
47 # 输出目标: @
48 # 依赖的目标 :<
49 ————————————————————————————————

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值