当前目录内文件
main.cpp
#include<iostream>
#include"head.h"
using namespace std;
int main(){
int a = 20, b = 12;
std::cout << "a = " << a << ", b = " << b << std::endl;
std::cout << "a + b = " << add(a, b) << std::endl;
std::cout << "a - b = " << subtract(a, b) << std::endl;
std::cout << "a * b = " << multiply(a, b) << std::endl;
std::cout << "a / b = " << divide(a, b) << std::endl;
return 0;
}
head.h
int add(int a, int b);
double divide(int a, int b);
int multiply(int a, int b);
int subtract(int a, int b);
add.cpp
#include"head.h"
int add(int a, int b){return a + b;}
div.cpp
#include"head.h"
double divide(int a, int b){return (double)a/b;}
mult.cpp
#include"head.h"
int multiply(int a, int b){return a * b;}
sub.cpp
#include"head.h"
int subtract(int a, int b){return a - b;}
makefile
截图
makefile1
app:sub.cpp mult.cpp div.cpp add.cpp main.cpp
g++ sub.cpp mult.cpp div.cpp add.cpp main.cpp -o app
makefile2
app:sub.o mult.o div.o add.o main.o
g++ sub.cpp mult.o div.o add.o main.o -o app
sub.o:sub.cpp
g++ -c sub.cpp -o sub.o
mult.o:mult.cpp
g++ -c mult.cpp -o mult.o
div.o:div.cpp
g++ -c div.cpp -o div.o
add.o:add.cpp
g++ -c add.cpp -o add.o
main.o:main.cpp
g++ -c main.cpp -o main.o
makefile3
#定义变量
src = sub.o add.o mult.o div.o main.o
target=app
$(target):$(src)
$(CXX) $(src) -o $(target)
g++ sub.cpp mult.o div.o add.o main.o -o app
%.o:%.cpp
$(CXX) -c $< -o $@
makefile4
#定义变量
src = $(wildcard ./*.cpp)
objs = $(patsubst %.cpp, %.o, $(src))
target=app
$(target):$(objs)
$(CXX) $(objs) -o $(target)
%.o:%.cpp
$(CXX) -c $< -o $@
.PHONY:#伪目标 使用make clean调用clean规则时不会检测clean文件的更新
clean:
rm $(objs) -f