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

posted @   Charles_hui  阅读(3)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· DeepSeek 开源周回顾「GitHub 热点速览」
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
点击右上角即可分享
微信分享提示