编写makefile

一。了解linux下将编写的C/C++代码编译成可执行文件。

       编译过程是分为四个阶段进行的,
       即预处理(也称预编译,Preprocessing)、编译(Compilation)、汇编 (Assembly)和连接(Linking)。

场景:假设现在有三个文件:(1)a.cpp文件 (2)a.h文件  (3)main.cpp,包含main函数,这个文件使用到了a.h里声明,且在a.cpp里定义的内容。


版本1:

start:
	g++ -o main.o -c main.cpp
	g++ -o a.o -c a.cpp
	g++ -o myapp a.o main.o

clean:
	rm -rf main.o a.o


命令:

g++ -o main.o -c main.cpp

g++  -o  a.o  -c  a.cpp   两行命令分别将main.cpp和a.cpp编译成main.o和a.o目标文件(也就是Compilation

g++ -o myapp a.o main.o 将目标文件main.o和a.o 生成可执行文件myapp。

(只要参数中有-c,总是生成目标文件;只要参数中无-c而只有-o,则总是生成执行文件。)


使用:

直接输入make 就执行第一个命令下的语句(这里是start:下的那三行命令)
要执行其他命令,如clean,则输入make clean


版本2:

<span style="font-size:12px;">CC=g++
start:
	$(CC) -o main.o -c main.cpp
	$(CC) -o a.o -c a.cpp
	$(CC) -o myapp a.o main.o

clean:
	rm -rf main.o a.o</span>

这里在开始的位置新增了一个变量 CC=g++  ,再通过 $ 引用变量

版本3:

<span style="font-size:12px;">CC=g++
start:a.o main.o
	$(CC) -o myapp a.o main.o

a.o: 
	$(CC) -o a.o -c a.cpp

main.o
	$(CC) -o main.o -c main.cpp

clean:
	rm -rf main.o a.o</span>





版本4:

<span style="font-size:12px;">CC=g++
start:a.o main.o
	$(CC) -o myapp a.o main.o

.cpp.o:
	$(CC) -o $@ -c $<

clean:
	rm -rf main.o a.o</span>





版本5:

<span style="font-size:12px;">CC=g++

SRCS=main.cpp\                 //如果是主函数
	a.cpp

OBJS=main.o\
	a.o
EXEC=myapp

start:$(OBJS)
	$(CC) -o $(EXEC) $(OBJS)

.cpp.o:
	$(CC) -o $@ -c $<

clean:
	rm -rf $(OBJS)</span>




















评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值