关于Linux GNU makefile的一些使用方法心得
个人感觉makefile也属于一种shell编程,类似bash文件(bash文件是包含多条shell指令的文件,通过执行bash文件可以达到一次性运行多条指令的作用)
makefile文件在bash文件的基础上增加了一些语法,具体可以查看linux自带的文档
在实验中使用到的makefile操作
在makefile中可以定义多个类似函数的多命令操作,如
main:
gcc -c hello.c -o hello.o
gcc hello.o -o hello
./hello
可以在命令前面夹@,这样命令就不会显示在shell中,只会显示命令执行的结果
main:
@gcc -c hello.c -o hello.o
@gcc hello.o -o hello
@./hello
如上的代码只会显示hello.c文件的执行结果,而不会把例如./hello这样的过程显示出来
可以为一些操作起别名,如CC :=gcc,给gcc起了一个别名叫做CC
可以在下文中通过 $(CC)的方法来调用gcc
也可以为一些文件起别名,如OBJ = main.o ls.o …(每个文件中间需要用空格隔开)
有时候执行makefile后会提示Make target is up to date,这是因为在当前上下文环境的文件夹中,存在与当前函数同名的文件夹,可以通过ls -a来查看文件夹,用rm指令将同名文件夹删除。
也可以通过.PHONY = 函数,来执行,这样会避免make的过程中产生文件。(.PHONY部分作者还未研究透,目前只是网上查看资料总结,可能存在错误)