A simple task to use Make
Make的规则
1 2
| test(目标文件): prog.o code.o(依赖文件列表) tab(一个tab来隔开) gcc prog.o code.o -o test(命令)
|
生成MakeFile文件
1 2 3 4 5 6 7 8
| test: prog.o code.o gcc prog.o code.o -o test prog.o: prog.c code.h gcc -c prog.c -o prog.o code.o: code.c code.h gcc -c code.c -o code.o clean: rm -f *.o test
|
使用make命令执行Makefile
1 2 3 4 5 6 7 8 9
| make gcc prog.o code.o -o test gcc -c code.c -o code.o gcc prog.o code.o -o test
./test
//清除.o和test文件 make clean
|
以下非常感谢@Eric2i的MakeFile项目结构
![](https://raw.githubusercontent.com/Sweet196/Picgo-images/main/problems/202305162058096.png)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
| CC=g++ CFLAGS=-Wall -std=c++17 -Wno-sign-compare BINDIR=bin OBJDIR=obj SRCDIR=src
$(OBJDIR)/%.o: $(SRCDIR)/%.cpp $(CC) $(CFLAGS) -c -o $@ $<
$(BINDIR)/exec: $(OBJDIR)/main.o $(OBJDIR)/grammar.o $(CC) -o $@ $^
test: $(BINDIR)/exec $(BINDIR)/exec
clean: rm -rf $(OBJDIR)/* rm -rf $(BINDIR)/*
|
自备本地cmake!
1 2 3 4 5 6 7 8 9 10 11 12
| cmake_minimum_required(VERSION 3.25) project(Course_compiler)
set(CMAKE_CXX_COMPILER "D:/university/C++/mingw64/bin/g++.exe")
set(CMAKE_C_COMPILER "D:/university/C++/mingw64/bin/gcc.exe")
add_executable(Course_compiler src/main.cpp)
|