Welcome 微信登录
编程资源 图片资源库 蚂蚁家优选 PDF转换器

首页 / 操作系统 / Linux / Makefile基本使用总结

Makefile常识1、Makefile是一个文件2、功能: 用作整个工程的编译Makefile基本用法1、首先建立一个Makefile文件,写入内容告诉make命令如何编译和链接我们的文件2、使用规则:目标:依赖文件1 依赖文件2             //可以有多个依赖文件,"依赖文件"就是要编译的文件,"目标"就是要生成的文件按TAB键 命令                                   //写上自己要执行的命令*解释*:"依赖文件" 就是要编译的文件,"目标" 就是要生成的文件,生成该目标文件需要后面的依赖文件才可以eg: main : main.c  file1.o  file2.ogcc  main.c  file1.o  file2.o  -o  mainfile1.o: file1.cgcc  -c  -o file1.o  file1.cfile2.o:file2.cgcc  -c  -o file2.o  file2.c*分析* :1)    上面一共有三个目标:main file1.o    file2.o2)   第2,3个目标借助 -c 只编译不链接生成的是二进制文件*.o3)    用第1个目标把第2,3目标及主依赖文件main.c一块生成一个可执行的文件main*总结*:1)   命令一定要按TAB键;2)   make默认执行第一个目标,因此第2,3目标用 -c 生成*.o的二进制文件而不生成可执行文件;3)    执行make有作用,前提是该目录下没有对应的可执行文件或要编译的文件已经更改;4)    不要一个目标依赖多个.c文件;5)    当一行写不下时,可以用来换到下一行写;3、Makefile文件下面还可以添加 伪目标伪目标:不是一个真正的文件名,但可以给该伪目标指定要执行的命令,之后 make + 伪目标 就能执行该命令eg: clean :rm  *.o  main若执行 make  clean 就可以把所有的*.o目标文件及可执行文件main一块删除4、灵活使用变量简化操作makefile常用变量:        $^                代表所有的依赖文件$<             代表第一个依赖文件$@              代表目标%.格式            代表所有该格式的文件(在vi替换命中令也使用了%代表所有)eg:file:file1.o  file2.ogcc  file1.o  file2.o  -o  filefile1.o: file1.cgcc  -c  -o file1.o  file1.cfile2.o: file2.cgcc  -c  -o file2.o  file2.cclean:rm  *.o  file用变量简化写法:file: file1.o  file2.ogcc  $^  -o  $@%.o: %.cgcc -c  $<  -o  $@clean:rm  *.o  file                //命令可根据需求定义*分析*:以后不管有多少个.c文件,都可以用上面的后两行表示,先生成二进制.o文件,之后可以选择哪个.o文件合成为一个执行文件。5、在第二行命令前加上@,在make执行时会显示执行的命令6、-o + 输出的文件名,对于它的位置放法,可以这样:当有编译选项时,放前面;没有,就放后边;Linux程序设计(原书第2版)(PDF中文版 + 源码) http://www.linuxidc.com/Linux/2011-04/34147.htmu-boot Makefile完全解读 http://www.linuxidc.com/Linux/2013-04/83529.htm实验平台上Makefile详细的解释 http://www.linuxidc.com/Linux/2014-01/94827.htmMakefile之Linux内核模块的Makefile写法分析 http://www.linuxidc.com/Linux/2013-06/85842.htmMakefile之写demo时的通用Makefile写法 http://www.linuxidc.com/Linux/2013-05/84679.htmMakefile之大型工程项目子目录Makefile的一种通用写法 http://www.linuxidc.com/Linux/2013-05/84678.htm本文永久更新链接地址:http://www.linuxidc.com/Linux/2014-11/109125.htm