加入收藏 | 设为首页 | 会员中心 | 我要投稿 PHP编程网 - 黄冈站长网 (http://www.0713zz.com/)- 数据应用、建站、人体识别、智能机器人、语音技术!
当前位置: 首页 > 教程 > 正文

Makefile基本使用概括

发布时间:2021-12-11 11:59:50 所属栏目:教程 来源:互联网
导读:Makefile常识 1、Makefile是一个文件 2、功能: 用作整个工程的编译 Makefile基本用法 1、首先建立一个Makefile文件,写入内容告诉make命令如何编译和链接我们的文件 2、使用规则: 目标:依赖文件1 依赖文件2 //可以有多个依赖文件,依赖文件就是要编译的文

Makefile常识
 
1、Makefile是一个文件
 
2、功能: 用作整个工程的编译
 
Makefile基本用法
 
1、首先建立一个Makefile文件,写入内容告诉make命令如何编译和链接我们的文件
 
2、使用规则:
 
目标:依赖文件1 依赖文件2              //可以有多个依赖文件,"依赖文件"就是要编译的文件,"目标"就是要生成的文件
 
按TAB键 命令                                    //写上自己要执行的命令
 
*解释*:"依赖文件" 就是要编译的文件,"目标" 就是要生成的文件,生成该目标文件需要后面的依赖文件才可以
 
eg: main : main.c  file1.o  file2.o
 
gcc  main.c  file1.o  file2.o  -o  main
 
file1.o: file1.c
 
gcc  -c  -o file1.o  file1.c
 
file2.o:file2.c
 
gcc  -c  -o file2.o  file2.c
 
*分析* :1)    上面一共有三个目标:main  file1.o    file2.o
 
2)    第2,3个目标借助 -c 只编译不链接生成的是二进制文件*.o
 
3)    用第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.o
 
gcc  file1.o  file2.o  -o  file
 
file1.o: file1.c
 
gcc  -c  -o file1.o  file1.c
 
file2.o: file2.c
 
gcc  -c  -o file2.o  file2.c
 
clean:
 
rm  *.o  file
 
用变量简化写法:
 
file: file1.o  file2.o
 
gcc  $^  -o  $@
 
%.o: %.c
 
gcc -c  $<  -o  $@
 
clean:
 
rm  *.o  file                //命令可根据需求定义
 
*分析*:以后不管有多少个.c文件,都可以用上面的后两行表示,先生成二进制.o文件,之后可以选择哪个.o文件合成为一个执行文件。
 
5、在第二行命令前加上@,在make执行时会显示执行的命令
 
6、-o + 输出的文件名,对于它的位置放法,可以这样:当有编译选项时,放前面;没有,就放后边;

(编辑:PHP编程网 - 黄冈站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读