Linux下书写一个简单的makefile

本文介绍了如何在Linux环境中书写一个简单的makefile,用于编译项目。内容涵盖SOURCES(源码文件)、INCLUDE(头文件)、LIBS(库文件)、OBJECTS(目标文件)和TARGET(可执行文件)等关键部分的定义。此外,还提到了makefile中针对源文件编译和目标文件生成的规则,以及clean目标以清除编译产物。示例中特别提及了使用g++编译器的情况,并给出了一个针对Opencv项目的makefile实例。

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

在Linux下我们经常需要“编译”,而谈起编译就离不开 makefile 了,简单来说 makefile 是编译的一个引导文件,关于它的详细介绍网上有许多资料,这里只为介绍如何书写一个简单的 makefile 。

SOURCES = 
INCLUDE = 
LIBS = 
OBJECTS = $(SOURCES:.cpp=.o)

TARGET = 

$(TARGET) : $(OBJECTS)
        g++ -o $(TARGET) $(OBJECTS) $(INCLUDE) $(LIBS)
$(OBJECTS) : $(SOURCES)
        g++ -c $(SOURCES)

clean:
        rm $(OBJECTS) $(TARGET)

SOURCES: 我们需要参与进编译的源码文件,如.c、.cpp......

INCLUDE: 外部包含的头文件,如果在当前文件夹下,则不用添加

LIBS: 编译涉及到的库

OBJECTS: 编译产生的目标文件,也就是.o文件,我们可以把编译用到的源文件名加上后缀.o,如 a.o b.o......我们看到上面使用了 $(SOURCES:.cpp=.o),这其实相当一个命令,把源文件的 .cpp后缀改为 .o

TARGET: 就是生成可执行文件的名字

$(TARGET) : $(OBJECTS): 对编译好的文件进行连接以生成可执行文件,连接时要将头文件、库添加进来

$(OBJECTS) : $(SOURCES): 对源文件进行编译

clean: 清除编译产生的目标文件和可执行文件

上面我们的编译器使用的是 g++,根据需要也可修改为 gcc或者其他编译器。

下面提供一个编译Opencv

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值