您的位置:首页 > 运维架构 > Linux

linux多文件编译—makefile

2016-11-30 10:21 239 查看
说到linux下多文件编译。大多是c语言,因为linux内核以及许多的自由软件都是c语言编写的。当然还有c++语言,区别就是c语言使用gcc,而c++语言使用g++。那么本文以c语言为例讲解。c++那么就能融汇贯通了将gcc改为g++就好了。

1,单个文件的编译,比如有test.c    直接输入命令

#gcc test.c -o test


执行,直接输入

#./test


2,多个文件的编译,比如有main.c  address.h address.c 这三个文件,那么我们使用makefile多文件编译的方法是很方便的,如下

step1建立makefile文件



#gedit makefile&


step2编辑makefile文件,在makefiel文件中写入以下

mm:main.o address.o
gcc main.o address.o -o mm
main.o:main.c address.c
gcc main.c -c
address.o:address.c
gcc address.c -c
clean:
rm -fR *.o mm


对上边的代码做一个解释:

mm是我们生成的名字,这个不用管,就写mm就好了,后边也用不到。

第一行的意思是mm是由main.o address.o生成的

第二行的意思是mm是由main.o address.o通过gcc -o生成的。注意gcc的前面是一个tab键!!

第三行的意思是main.o是由main.c address.c生成的

第四行的意思是main.o是由main.c address.c通过gcc -c生成的。注意gcc的前面是一个tab键!!

第五行第六行不解释了,都一个意思。


第七行第八行,是执行make clean后需要执行的代码,在该处的意思是删除所有.o结尾的文件和mm文件。其中第八行的格式再强调一下,(首先是一个tab键,然后rm,然后空格,然后*,然后.,然后o),,看清楚是小写字母o别写错了。

step3使用make命令编译

#make -f makefile


step4如果你写的源代码有错误,此时会报错。那么修改源代码后,再次执行step3。直至通过

step5运行程序

#./makefile




完!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: