欢迎光临散文网 会员登陆 & 注册

快速编写一个简洁、正确的makefile

2023-02-25 13:47 作者:上岸的小浣熊  | 我要投稿

 makefile教程

       当我们在 linux 系统下进行 C/C++ 编程,或者要拿着我们 windows 系统下的 VS 编译器中编写的 C/C++ 源码在 linux 系统中运行时,我们就会涉及到 makefile 文件。

       makefile 文件用于 linux 系统中将编写好的 .c ,.cpp,.h 文件编辑成一个可执行文件,类似 VS 中的 “生成解决方案” 的过程。拥有独立的编写语言和方法。当然,也可以通过shell命令行编译,但当文件较多时,采用命令行去编译费时费力,并且当项目中代码发生变化时,不利于后期的更新和维护。

       一个正确可行的makefile文件也具有多种,本次我们介绍一种书写较为简洁、上手较为容易的编写方式,如果要详细学习的话,makefile文件有很多可以学习研究的地方。

1  准备

       采用 cd 命令将当前工作目录设置为代码文件所在路径,采用 vim makefile 命令打开文件(如果没有会自动创建)

2  编写

2.1  定义参数(主要为了简洁,便于更新、维护)

CXX = g++ (gcc)       # .cpp 文件用 g++ 编译,.c 文件用 gcc 编译

TARGET = .....          # 输入所生成可执行文件的名字,类似于 win 中的 ....exe

OBJ = main.o  .....    # 输入包含 main 在内的所有 .cpp,但后缀改为 .o,中间空格隔开即可

CXXFLAGS = -c      # 编译选项,如果想看警告信息,在后面添加 -Wall,空格隔开

2.2  编译

$(TARGRT) : $(OBJ)

制表符$(CXX)  -o  $@  $^   # 表示用 g++ 编译器,将 OBJ 里的所有 .o 生成可执行程序

%.o : %.cpp

制表符$(CXX)  $(CXXFLAGS)  $^  -o  $@    # 表示用 g++ 编译器,将所有 .cpp 文件编译生成 .o 文件

.PHONY:clean

clean:

制表符rm  -f   *.o  $(TARGET)     #删除编译生成的所有 .o 文件和可执行程序

2.3  使用

       makefile 编写结束后,在 shell 命令行输入 make 进行编译,如果文件名不是makefile,输入  make  -f  文件名  进行编译,输入 make clean 删除生成的文件。

2.4  运行

       在 shell 命令行输入   ./可执行程序名   就可以成功运行程序了。

快速编写一个简洁、正确的makefile的评论 (共 条)

分享到微博请遵守国家法律