如何在linux下写makefile

来源:互联网 发布:毕业证复印件制作软件 编辑:程序博客网 时间:2024/05/01 17:11

       本文主要来自于陈皓老师的跟我一起写makefile,链接地址:http://blog.csdn.net/haoel/article/details/2886

        Windows下用集成开发环境(IDE)开发程序时不会涉及到编译、链接的步骤,集成开发环境已经把这些工作给你集成好了,你要做的就是根据语言的语法来编写代码。所以Windows下开发程序对makefile会有点生疏。

        makefile的作用也是把你编写好之后的源文件进行编译与链接,只是它这个过程需要你自己去指定编译与链接的文件。

makefile的基本格式如下:

target… prerequisite…

(Tab)command

格式解释

target:生成的目标文件,可以是可执行文件,也可以是中间目标文件

prerequisite:生成target所需要的文件

command:make需要的执行命令,一般是编译与链接的命令,命令前面必须要有Tab键才能有效果

makefile的简单例子(用的Ubuntu11.10):

         makefile文件中的内容:

          

        

         makefile文件与hello.c源文件都在我新建的command文件夹中;然后转到控制台再切换到command目录下,直接输入make会才生hello.oexe.out两个文件,如下图:

         

        

         在控制台下的命令:

        

GCC

           GCC是一个用于linux系统下编程的编译器。GCC原名为GNU C语言编译器(GNU C Compiler),因为它原本只能处理C语言。GCC很快地扩展,变得可处理C++。之后也变得可处理FortranPascalObjective-CJavaAda,以及Go与其他语言。

命令解释

          gcc –c hello.c:编译command目录下的hello.c源文件,编译之后会成成hello.o中间文件。

          rm:删除command目录下的hello.oexe.out文件

          ./exe.out:输出exe.out可执行文件,hello.c中我写的是Hello World!

          makemake命令与make exe命令执行的效果是一样的。

 

Windows下的VS系列的编译器是cl.exe;链接器是link.exemakefile生成的是nmake.exelinuxgcc把编译与链接两个功能都包括进来了。

如果对编译、链接、源文件到可执行文件的详细过程,可以看看程序员的自我修养,链接地址:http://download.csdn.net/detail/lishuanglin131/4852131