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
浙公网安备 33010602011771号