2021-06-05

Makefile

原理(个人见解)

了解cmake工具

​ 在进项工程项目开发中,我们的文件中可能会包含特别多的源文件(如.c,.cpp),和头文件head.h之类的。

要点

  • 无论是C、C++、还是pas,首先要把源文件编译成中间代码文件,在Windows下也就是 .obj 文件,UNIX下是 .o 文件,即 Object File,这个动作叫做编译(compile)。然后再把大量的Object File合成执行文件,这个动作叫作链接(link)。
  • 如果一个个文件先编译生成对象文件.o,在将所有对象文件连接起来就显得极其麻烦

我们需要在文件夹下建立一些文件

  1. main.cpp文件
  2. 存放头文件的include文件
  3. 存放源文件.cc或.cpp的src文件
  4. 用来存放生成的KKB可执行文件的bin文件
  • include文件中存放的是以 .h结尾的头文件
  • src中的是源文件
  • 还需要我们的主函数main.cpp
  • makefile文件中的是我们执行编译的那些指令
.PHONY: clean run   #j建立一个虚拟空间,这个空间中有clean和 run这两个指令
all: main.o ./src/head1.o ./src/head2.o ./src/head3.o  #连接的对象文件
	g++ main.o ./src/head1.o ./src/head2.o ./src/head3.o -o ./bin/KKB #执行的连接生成一个可执行文件KKB放在bin目录下
main.o: main.cpp ./include/head1.h ./include/head2.h ./include/head3.h #生成.o文件需要用到的头文件
	g++ -I ./include -c main.cpp  #include中的头文件
./src/head1.o: ./src/head1.cc ./include/*.h
	g++ -I ./include -c ./src/head1.cc -o ./src/head1.o  #对head1.cc文件编译生成一个head1.o文件放到src目录下
./src/head2.o: ./src/head1.cc ./include/*.h
	g++ -I ./include -c ./src/head2.cc -o ./src/head2.o
./src/head3.o: ./src/head3.cc ./include/*.h
	g++ -I ./include -c ./src/head3.cc -o ./src/head3.o
clean: ##清除操作
	rm ./bin/KKB ./src/*.o main.o
run:  #直接执行KKB文件,如果不写这个,我们需要到bin目录下执行指令  ./KKB
	./bin/KKB

  • 上面文件内容准备好后,我们只需要执行指令 “make”就会直接编译了
make

然后 make run直接运行

make run

make clean 清除

make clean

大佬的链接 : https://blog.csdn.net/haoel/article/details/2886
写于2021.6.5

上一篇:将单向链表按某值划分为左边小、中间相等、右边大的形式


下一篇:十大经典排序之桶排序(C++实现)