Makefile
一.前言
最近makefile用的比较多,网上看到一些资料,做下笔记,以备不时之需。
二.代码
代码Version1
点击查看代码
hello: main.cpp printhello.cpp fatorial.cpp
g++ -o hello main.cpp printhello.cpp factorial.cpp
代码Version2
点击查看代码
CXX = g++
TARGET = hello
OBJ = main.o printhello.o factorial.o
$(TARGET): $(OBJ)
$(CXX) - o $(TARGET) $(OBJ)
main.o:main.cpp
$(CXX) -c mian.cpp
printhello.o: printhello.cpp
$(CXX) -c printhello.cpp
fatorial.o: fatorial.cpp
$(CXX) -c printhello.cpp
代码Version3
点击查看代码
CXX = g++
TARGET = hello
obj = main.o printhello.o factorial.o
#编译选项
CXXFLAGS = -c -Wall
#$@相当于冒号前的TARGET,$^相当于依赖OBJ
$(TARGET): $(OBJ)
$(CXX) -o $@ $^
#$<相当于.cpp文件依赖里的第一个,实际上这里依赖只有一个
%.o: %.cpp
$(CXX) $(CXXFLAGS) $< -o $@
#.PHONY: clean 防止工程有clean文件。-f 强制删除
.PHONY: clean
clean:
rm -f*.o $(TARGET)
代码Version4
点击查看代码
CXX = g++
TARGET = hello
SRC = $(wildcard *.cpp)#把当前目录下的.cpp文件全部放到SRC这个变量中
OBJ = $(patsubst %.cpp, %.o, $(SRC))#把SRC里的.cpp文件替换成.o,然后放入OBJ变量中
CXXFLAGS = -c -Wall
#$^ 表示所有的依赖文件,$@ 表示当前的目标文件。$(OBJ)替换为$(SRC),则不会产生许多对应.o文件。
$(TARGET): $(OBJ)
$(CXX) -o $@ $^
#.PHONY: clean 防止工程有clean文件。-f 强制删除
.PHONY: clean
clean:
rm -f*.o $(TARGET)
三.常用语法命令
显示所有的警告信息:“-c -Wall”
四.参考
https://blog.csdn.net/weixin_43297891/article/details/137942236
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· DeepSeek 开源周回顾「GitHub 热点速览」
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了