C语言学习013:通过make编译C源代码
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了C语言学习013:通过make编译C源代码,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1726字,纯文字阅读大概需要3分钟。
内容图文
编译多个C源代码文件
当程序文件越来越多,修改了其中的一部分代码文件,我们并不需要全部重新编译,只需要编译其中一部分就可以,下面我们创建了一个launch程序,除了主程序,我们创建了3个功能代码文件reaction.c pitch.c engine.c
1 #include <stdio.h> 2 #include "lac.h"34void reaction(){ 5 printf("reaction \n"); 6 }
1 #include <stdio.h> 2 #include "lac.h"34void pitch(){ 5 printf("pitch \n"); 6 }
1 #include <stdio.h> 2 #include "lac.h"34void engine(){ 5 printf("engine \n"); 6 }
1 #include <stdio.h> 2 #include "lac.h"34int main(){ 5 reaction(); 6 pitch(); 7 engine(); 8return0; 9 }
首先将源代码编译为目标文件
gcc -c *.c
*.c会匹配当前目录下的所有C源文件,-c会告诉编译器为所有源文件创建目标文件
然后通过下面的命令,编译器会过滤掉代码文件,将目标文件链接起来,行程launch程序
gcc *.o -o launch
如果我们修改了其中一个文件,只需要编译修改的文件,然后再将目标文件连接起来,这样就可以不必编译所有的文件了
用make工具自动化构建
那么问题来了,如果修改的文件很多,编译的时候我们就很难记得修改了哪些文件,当然也可以把所有文件都重新编译,但是那样效率很低,有没有什么办法让它自动编译呢?下面我们就通过make工具自动化构建
make编译的文件叫目标,对每个目标它需要知道两件事情:依赖项(生成文件需要用哪些文件)和生成方法(生成该文件时需要哪些指令);依赖项和生成方法合起来就构成了规则,有了规则,make就知道如何生成目标
比如,要将reaction.c编译成目标文件reaction.o;那么reaction.o就是目标,reaction.c是依赖项,生成方法就是将reaction.c转化为reaction.o的编译命令 gcc -c reaction.c;创建完目标文件后,我们需要将所有目标文件链接在一起,就是通过 gcc *.o -o launch命令,*.o匹配所有目标文件;如果只是需要链接一部分目标文件,就需要将要链接的目标文件逐个列出来,像这样: gcc launch.o reaction.o -o launch
现在我们就将所有的目标、依赖项和生成方法保存到makefile(或者是Makefile)文件,然后将该文件放在源程序文件同目录中
1 launch.o: launch.c lac.h 2 gcc -c launch.c 3reaction.o: lac.h reaction.c 4 gcc -c reaction.c 5pitch.o: lac.h pitch.c 6 gcc -c pitch.c 7engine.o: lac.h engine.c 8 gcc -c engine.c 9launch: launch.o reaction.o pitch.o engine.o 10 gcc *.o -o launch
需要注意的是,生成方法都是tab开头
现在可以打开控制台开始编译代码了;在unix系统中我们可以用make命令,而在windows系统中MinGW版的make写作 mingw32-make
当在我们修改了其中一个源代码文件(pitch.c),重新编译,你会看到make只编译了修改的文件
使用make工具的目的是快速编译多个源文件程序,如果你写的只是单个源代码文件,那就直接编译来得省事
原文:http://www.cnblogs.com/liunlls/p/C_make.html
内容总结
以上是互联网集市为您收集整理的C语言学习013:通过make编译C源代码全部内容,希望文章能够帮你解决C语言学习013:通过make编译C源代码所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。