今天学习了linux环境下C语言编程中makefile的编写。这只是一个简单的例子:
假设在一个practice目录下有如下文件:main.c hello1.c hello2.c hello1.h hello2.h 几个程序文件,要将他们编译连接,最好的方法就是写一个makefile文件,并用make命令执行。make是一个解释makefile文件中的指令的命令工具。当makefile文件一旦写好,只需要一个make命令,就可以自动编译整个工程,极大的提高了软件开发的效率。这个例子的makefile文件如下:
main:main.o hello1.o hello2.o
gcc -o main main.o hello1.o hello2.o(前面有一个tab键)
main.0: main.c hello1.h hello2.h
gcc -c main.c
hello1.o: hello1.c hello1.h
gcc -c hello1.c
hello2.o: hello2.c hello2.h
gcc -c hello2.c
clean:
rm main main.o hello1.o hello2.o
这时候,只需要一个make命令,就可以生成最终结果:可执行文件main
注意:
1.当要重新生成目标代码时,可以用“make clean”命令.
2.两外一种更稳健的clean的写法是:
.PHONY : clean
clean:
-rm main main.o hello1.o hello2.o
3.也可以将几个需要的目标文件以变量的形式写出,即:
在makefile文件的最开始写到:objects = main main.o hello1.o hello2.c。其他地方就用"$(objects)来代替即可!