学习makefile--1

来源:互联网 发布:java premain 编辑:程序博客网 时间:2024/05/16 13:40

  makefile之前看过一遍相关的课件,ppt上的例子试了下竟然没有成功。新年加班的第一天,无意之中看到一篇博客,竟然试成功了,今天开了个头其实不难么。偷笑,我的例子也来自以下这个博客。(http://blog.chinaunix.net/space.php?uid=25124785&do=blog&id=76670)

------------------------------------------------------------------------------------------------华丽分割------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

第一阶段  一个文件的makefile

1.我们要编译的文件为hello.c

#include<stdio.h>int main(){printf("hello");}
2.在hello.c的同一个目录下(不同目录下是不是也可以?要怎么写,目前还不会),写一个makefile文件

hello:hello.o    gcc -o hello hello.ohello.o:hello.c    gcc -c hello.cclean:    rm -f hello.o hello
3.执行 make

4.此时执行可以看到hello已经生成

5.执行hello文件


6.结果如下


注意哦,并不是没有结果,而是结果没有换行。

鉴于这样不方便阅读,以后应该在printf的结尾应该加上“\n”,这也是http://blog.chinaunix.net/space.php?uid=25124785博客中特意注明的地方。

7.修改hello.c

#include<stdio.h>int main(){printf("hello\n");
printf("新年快乐\n");////这句话与此次学习无关。^。^}
好了,这就结束了最简单的makefile,下回再试更复杂一点的。

--------------------------------------------------------------------------华丽分割-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

    makefile规则简介

  一个 makefile 主要含有一系列的规则,如下:
        A: B
        (tab)<command>
        (tab)<command>

        每个命令行前都必须有tab符号。

        上面的makefile文件目的就是要编译一个helloworld的可执行文件。让我们一句一句来解释:

               hello :hello.o                  hello依赖hello.o目标文件。

              gcc -o hello hello.o        编译出hello可执行文件。-o表示你指定 的目标文件名。

              hello.o:hello.c                 hello.o依赖hello.c文件。

              gcc -c hello.c                  编译出hello.o文件。-c表示gcc 只把给它的文件编译成目标文件, 用源码文件的文件名命名但把其后缀由“.c”或“.cc”变成“.o”。在这句中,可以省略-o file1.o,编译器默认生成file1.o文件,这就是-c的作用。

              clean:

rm -f hello.o hello

        当用户键入make clean命令时,会删除hello.o 和hello\文件。

        如果要编译cpp文件,只要把gcc改成g++就行了。

        写好Makefile文件,在命令行中直接键入make命令,就会执行Makefile中的内容了。

        到这步我想你能编一个hello程序了。

------------------------------------------------------------------华丽一割---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

新年第一天就是加班啊,我小小不平衡了下,但是来了就应该有点成果嘛,除了改了BUG,查看了部分代码外,也给今年的学习开个好头。与君共勉。嘿嘿