c++linux中make使用方法

目标文件:依赖

命令

例:

main.exe:hello.cc
    g++ hello.cc -o main.exe
    #g++ *.cc -o main.exe  #编译所有.cc文件
删除文件
clean:
	rm -rf main.exe

.o文件可以自动依赖于.cc文件

如果有两个makefile文件我们可以通过以下命令来选择执行哪个makefile文件。

make -f makefile2

make只会执行第一个,想要所有语句都执行可以使用all

all:hello.exe hi.exe

hello.exe:hello.o
	g++ -o $@ $^   #&@代表:左边所有内容 $^代表:右边所有内容

hi.exe:hi.o
	g++ -o $@ $^
简化makefile
CC:=g++
#LIBS:= -llog4cpp -lpthread
#OBJS:= hello.o

all:hello.exe hi.exe

hello.exe:hello.o
	$(CC) -o $@ $^   #&@代表:左边所有内容 $^代表:右边所有内容

hi.exe:hi.o
	&(CC) -o $@ $^
打印
SRC_DIR:=./
SRCS:= $(wildcard $(SRC_DIR)*.cc)

print:
	@echo &(SRCS)
示例

INC_DIR:= ./include/
SRC_DIR:= ./src/
SRCS:= $(wildcard $(SRC_DIR)*.cc)  #使用wildcard函数可以使用通配符,找到所有满足通配符的文件名
CC:= g++
CXXFLAGS:= -g -Wall $(addprefix -I, $(INC_DIR)) #addprefix添加前缀 -I指定头文件目录
LIBS:= -llog4cpp -lpthread
OBJS:= $(patsubst %.cc, %.o, $(SRCS)) #将后缀.cc替换为.o

BIN_EXE:= ./bin/test.exe

$(BIN_EXE):$(OBJS)
	$(CC) -o $@ $^ $(CXXFLAGS)  $(LIBS)  

%.o:%.cc
	$(CC) -o $@  -c $< $(CXXFLAGS)  $(LIBS)  

print:
	@echo $(OBJS)
clean:
	rm -rf $(OBJS) $(BIN_EXE) 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值