当文件很多时需要用工程来进行管理,这时就需要用到makefile
1、安装make
sudo apt install make
安装成功:
stu@stu-virtual-machine:~$ make
make: *** 没有指明目标并且找不到 makefile。 停止。
2、进入makefile文件
vi makefile
目标文件:依赖文件
规则
1 all:main
2
3 main:main.o add.o max.o
4 gcc -o main main.o add.o max.o
5 main.o:main.c
6 gcc -c main.c
7
8 max.o:max.c
9 gcc -c max.c
10
11 add.o:add.c
12 gcc -c add.c
13
14 clean:
15 rm -f *.o main
运行make clean刚才在makefile文件中已经给出(删除所有.o文件/清理解决方案)
stu@stu-virtual-machine:~/file$ make clean
rm -f *.o main
stu@stu-virtual-machine:~/file$ ls
add.c add.h main.c makefile max.c max.h test.txt yasuo.tar.gz
stu@stu-virtual-machine:~/file$
3、利用make生成工程解决方案
stu@stu-virtual-machine:~/file$ make
gcc -c main.c
main.c: In function ‘main’:
main.c:5:19: warning: implicit declaration of function ‘max’ [-Wimplicit-function-declaration]
5 | printf("%d\n",max(x,y));
| ^~~
main.c:6:19: warning: implicit declaration of function ‘add’ [-Wimplicit-function-declaration]
6 | printf("%d\n",add(x,y));
| ^~~
gcc -c add.c
gcc -c max.c
gcc -o main main.o add.o max.o
stu@stu-virtual-machine:~/file$ ls
add.c add.o main.c makefile max.h test.txt
add.h main main.o max.c max.o yasuo.tar.gz
stu@stu-virtual-machine:~/file$ ./main
20
30
注:ex:如果只对add.c进行修改后,下再生成解决方案时就会只对刚才修改的文件进行重新编译生成二进制目标文件