C++进阶:Makefile基础用法

本文介绍了Makefile的基础用法,包括基本语法、简化过程和库的生成与使用。通过实例展示了如何编写Makefile,使用变量、自动推导、预定义变量和假想目标,以及动态库和动态加载库的创建。

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

1. Makefile基本语法与执行

作用:
Makefile 文件告诉 Make 怎样编译和连接成一个程序

可用命令 dnf install make 安装make功能

格式:
按如下格式编写 Makefile

目标(target): 依赖(prerequiries)...
		命令(command)

注意:每个命令行前面必须是一个Tab字符,即命令行第一个字符是Tab

实验:
vim Makefile 编辑文件:

simpletest:simple.o simpletest.o
        g++ simple.o simpletest.o -o simpletest
simple.o:simple.cpp
        g++ -c simple.cpp -o simple.o
simpletest.o:simpletest.cpp
        g++ -c simpletest.cpp -o simpletest.o

结果为:

[root@foundation1 shishi]# make
g++ -c simple.cpp -o simple.o
g++ -c simpletest.cpp -o simpletest.o
g++ simple.o simpletest.o -o simpletest

命令上下是有顺序的,上一行对下一行具有依赖关系

如果文件夹中已经有.o文件,make后会提示已经生成,需要删除.o文件后再make

clean的作用: 被指定时会删除对应.o文件,避免上述情况

simpletest:simple.o simpletest.o
        g++ simple.o simpletest.o -o simpletest
simple.o:simple.cpp
        g++ -c simple.cpp -o simple.o
simpletest.o:simpletest.cpp
        g++ -c simpletest.cpp -o simpletest.o
clean:
        rm simpletest simple.o simpletest.o

结果为:

[root@foundation1 shishi]# make clean 
rm simpletest simple.o simpletest.o
[root@foundation1 shishi]# make
g++ -c simple.cpp -o simple.o
g++ -c simpletest.cpp -o simpletest.o
g++ simple.o simpletest.o -o simpletest

2. Makefile简化过程

使用变量: 如果调用某个文件用的次数较多,可以使用变量代替,变量可以直接替换

变量定义: 变量 = 字符串
变量使用: $(变量名)

makefile 文件可改为:

TARGET = simpletest
OBJS = simple.o simpletest.o

$(TARGET):$(OBJS)
        g++ $(OBJS) -o $(TARGET)
simple.o:simple.cpp
        g++ -c simple.cpp -o simple.o
simpletest
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值