make的使用和Makefile的编写1
2014-11-28 23:09
337 查看
make是Linux中用来维护程序模块关系和生成可执行程序的工具,有了make命令和Makefile文件,整个项目的源文件可以自动的编译,极大程度的提高了软件的开发效率。从windows中转到Linux确实不太适应,但是习惯就好,下面简单介绍一下make的使用及Makefile的编写。
make从Makefile中获取模块间的依赖关系,使用Makefile中的命令对过时的文件进行编译。
1 Makefile的基本构成
目标文件列表 分隔符
依赖文件列表 [;命令]
[命令]
[命令]
main:main.o module1.o module2.o ;gcc main.o module1.o module2.o -o main
或者
main:main.o module1.o module2.o
gcc main.o module1.o module2.o -o main
注意命令这一行一定要以Tab键开头
2 make是如何解释执行Makefile的
Makefile文件:
main:main.o module1.o module2.o
gcc main.o module1.o module2.o -o main
main.o:main.c head1.h head2.h common_head.h
gcc -c main.c
module1.o:modue1.c head1.h
gcc -c module1.c
module2.o:modue2.c head2.h
gcc -c module2.c
#This is a Makefile
从目标文件找依赖文件,首先找到目标文件main的依赖文件开始,发现没有,然后找到目标文件main.o、module1.o、module2.o的依赖文件都存在,生成这三个目标文件,然后回溯到第一行发现目标文件main的依赖文件都存在,用后面的命令gcc main.o module1.o module2.o -o main生成main。
#This is a Makefile这一行是注释,不执行。
当修改某一个文件后执行make,他会比较目标文件和依赖文件的时间先后,如果依赖文件比较新就重新生成,并检查所有相关的目标文件与依赖文件的时间判断是否需要重新生成。
3 其他说明
如果一行过长可以在这一行末尾输入一个反斜杠(\),由反斜杠连接的多行被当作一行对待。反斜杠与新的一行之间不要有空白。
使用下面的方式告诉make使用哪个Makefile
make -f othername
make --file=othername
通常make把Makefile中的第一个规则中的目标当成最终目标。如果第一条规则中有多个目标文件,则把第一个当为最终目标,通常最终目标就是最后要编译成的可执行文件。其他规则中的文件都是为了生成目标文件所产生的中间文件。
make从Makefile中获取模块间的依赖关系,使用Makefile中的命令对过时的文件进行编译。
1 Makefile的基本构成
目标文件列表 分隔符
依赖文件列表 [;命令]
[命令]
[命令]
main:main.o module1.o module2.o ;gcc main.o module1.o module2.o -o main
或者
main:main.o module1.o module2.o
gcc main.o module1.o module2.o -o main
注意命令这一行一定要以Tab键开头
2 make是如何解释执行Makefile的
Makefile文件:
main:main.o module1.o module2.o
gcc main.o module1.o module2.o -o main
main.o:main.c head1.h head2.h common_head.h
gcc -c main.c
module1.o:modue1.c head1.h
gcc -c module1.c
module2.o:modue2.c head2.h
gcc -c module2.c
#This is a Makefile
从目标文件找依赖文件,首先找到目标文件main的依赖文件开始,发现没有,然后找到目标文件main.o、module1.o、module2.o的依赖文件都存在,生成这三个目标文件,然后回溯到第一行发现目标文件main的依赖文件都存在,用后面的命令gcc main.o module1.o module2.o -o main生成main。
#This is a Makefile这一行是注释,不执行。
当修改某一个文件后执行make,他会比较目标文件和依赖文件的时间先后,如果依赖文件比较新就重新生成,并检查所有相关的目标文件与依赖文件的时间判断是否需要重新生成。
3 其他说明
如果一行过长可以在这一行末尾输入一个反斜杠(\),由反斜杠连接的多行被当作一行对待。反斜杠与新的一行之间不要有空白。
使用下面的方式告诉make使用哪个Makefile
make -f othername
make --file=othername
通常make把Makefile中的第一个规则中的目标当成最终目标。如果第一条规则中有多个目标文件,则把第一个当为最终目标,通常最终目标就是最后要编译成的可执行文件。其他规则中的文件都是为了生成目标文件所产生的中间文件。
相关文章推荐
- make的使用和Makefile的编写
- linux C中make的使用和makefile的编写
- [Linux-C++] Make 的使用和Makefile的编写
- Makefile文件编写及make命令使用简介
- 使用autotools自动生成Makefile并在此以上使用dh-make生成可发布的deb程序包(详解)
- 1.编写一个简单的C语言程序:计算输入多个整数的平均值,并将此程序分割成多个小文件。 2.为第1题中的程序编写makefile文件,用make编译后改成返回最小值,再编译,观察有多少文件不需要重新
- Makefile编写和使用技巧
- Gnu make手册学习【3】——编写makefile文件
- linux c编程:make Makefile工具的使用
- make(七)makefile中函数使用
- unix automake 使用,快速生成你的Makefile
- linux编程学习笔记(五) make的使用和Makefile
- 使用ant的exec命令来调用 make命令执行makefile文件
- make与makefile的基本使用与深入
- 使用autotools自动生成Makefile并在此之上使用dh-make生成可发布的deb程序包(详解)
- 1.编写一个简单的C语言程序:计算输入多个整数的平均值,并将此程序分割成多个小文件。 2.为第1题中的程序编写makefile文件,用make编译后改成返回最小值,再编译,观察有多少文件不需要重新
- 使用make -nd调试makefile
- Linux/Unix 环境make和makefile使用详解(二)
- Linux下C语言编程基础知识--gcc编译器的使用、MakeFile文件的编写
- make makefile 的使用