精华内容
下载资源
问答
  • 如何写Makefile

    2019-10-06 00:28:32
    如何写Makefile如何写Makefile》,作者:jenimils,原文链接:http://www.cnblogs.com/L-hq815/archive/2012/11/22/2783188.html 分享自:博客园Android客户端(http://an...
    《如何写Makefile》,作者:jenimils,原文链接:http://www.cnblogs.com/L-hq815/archive/2012/11/22/2783188.html 分享自:博客园Android客户端(http://android.walkingp.com/cnblogs/)
    posted on 2012-11-28 08:47 lexus 阅读(...) 评论(...) 编辑 收藏

    转载于:https://www.cnblogs.com/lexus/archive/2012/11/28/2791916.html

    展开全文
  • 如何写makefile

    2017-03-29 10:29:00
    精华帖,如何写makefile http://www.chinaunix.net/old_jh/23/408225.html 转载于:https://www.cnblogs.com/Crysaty/p/6638371.html

    精华帖,如何写makefile

    http://www.chinaunix.net/old_jh/23/408225.html

    转载于:https://www.cnblogs.com/Crysaty/p/6638371.html

    展开全文
  • 教你如何写makefile

    2018-12-07 15:00:12
    本文档教你如何写makefile,很适合入门。内容非常详细
  • 认识及如何写Makefile

    会不会写Makefile,侧面说明了一个人是否具备完成大型工程的能力。任何一种技能或知识都是源之于某种社会需求,那为什么要用Makefile呢? 

    当项目源文件很少的时候,我们也许还可以手动使用gcc命令来进行编译,但是当项目发展到一个庞大的规模时,再手动敲gcc命令去编译就变得不可能的事情。所以呢,在这样的历史背景下,就出现了某个大牛(斯图亚特·费尔德曼),在某年(1977年)在某地(贝尔实验室)制作了这样一个软件,它的名字就叫做make。

    用一句话来说明为什么用Makefile:为了实现自动化(当然大多数场景都是用在自动化编译中)。

    另外在编译过程中,为了节省时间,希望仅编译修改过的文件,这也是Makefile在设计时一个重要的设计观点。
      
    那么我们今天就来认识一下makefile及如何写一个最基本的Makefile

    makefile是文本文件

    make是与之对应的命令,可以自动化构建工程

    make依赖于Makefile。

    Makefile 有依赖方法和依赖关系(相互依赖,缺一不可)

    在Makefile如何描述依赖关系呢?

    比如你依赖你的父母,那么你与父母的依赖关系应写成:

                        你:父母
    

    那么,在Makefile就按照如下方法描述依赖方法:

              目标文件(你) :依赖文件列表(父母)
    

    Makefile的核心是描述依赖方法和依赖关系

    接下来我们就来看看如何写一个基本的Makefile!

    首先建立一个叫mk的目录,进入目录。创建一个test.c文件

    这里写图片描述

    进入test.c编写一个简单的小程序(如下图所示)

    这里写图片描述

    保存并退出vim编译器,然后创建一个Makefile文件。

    这里写图片描述

    接着我们输入vim Makefile指令开始写一个简单的Makefile(如下图所示)

    这里写图片描述

    1、一个Makefile中必须写依赖方法与依赖关系, 依赖方法必须紧挨依赖关系 并以tab键开始

    注意:clean是没有依赖关系的,所以只写“clean:” 即可

    2、.PHONY是一个清理工程

        被“.PHONY:” 修饰的字符串叫做伪目标,伪目标不会产生文件。
    

    到这里我们就写完了一个最基本的Makefile,接下来让我们来运行一下,输入make指令即可产生一个叫test的文件,编译运行test即可得到程序结果。

    这里写图片描述

    当然了,如果我们想要删除要怎么呢?因为在刚才的Makefile文件中我们已经写入了clean功能,我们输入指令“make clean”,就可以成功删除test文件。

    这里写图片描述

    再次输入指令make就可以重新产生test文件啦!!

    还有一点!在写 Makefile的内容时如果你想添加注释的时候,在文本前加入#即可(如图所示)

    这里写图片描述

    好啦!关于Makefile我们今天就说到这里。嘿嘿,你学会如何写Makefile了吗?

    展开全文
  • 如何写 makefile文件

    2009-05-19 13:43:00
    下面以问答的形式来解释如何写makefile文件. 1.makefile的核心: target...(目标文件|object文件|可执行文件|标签) : prerequisites( 生成target所需要的文件,也可以是target中的一种...) Command (shell 命令) ...

    如何写 makefile文件

    学习别人的程序就面临着重写makefile的问题.下面以问答的形式来解释如何写makefile文件.

    1.makefile的核心:

    target...(目标文件|object文件|可执行文件|标签) : prerequisites( 生成target所需要的文件,也可以是target中的一种...)

    Command (shell 命令)

    target这一个或多个的目标文件依赖于prerequisites中的文件,其生成规则定义在command中。prerequisites中如果有一个以上的文件比target文件更新的话,command所定义的命令就会执行。

    2.make 的工作原理:

    例, 文件名:makefiletest

    test : test.o

    gcc -o test test.o

    test.o: test.h test.c

    gcc -c test.c

    clean:

    rm test.o test

    在默认方式下,只输入make命令。其会做如下工作:

    make会在当前目录下找名字为“Makefile文件”或“makefile文件”的文件。如果找到,它会找文件中的第一个目标文件(target)。在上面的例子中,它会找到makefiletest这个文件,并把test作为最终的目标文件;如果test文件不存在,或是test所依赖的后面的 .o 文件的修改时间要比test这个文件新,它就会执行后面所定义的命令来生成test文件。

    如果test所依赖的.o文件也存在,make会在当前文件中找目标为.o文件的依赖性,如果找到,则会根据规则生成.o文件(这有点像一个堆栈的过程)。

    当然,C文件和H文件如果存在,make会生成 .o 文件,然后再用 .o 文件生成make的最终结果,也就是执行文件test。

    这就是整个make的依赖性,make会一层又一层地去找文件的依赖关系,直到最终编译出第一个目标文件。在找寻的过程中,如果出现错误,比如最后被依赖的文件找不到,make就会直接退出,并报错。而对于所定义的命令的错误,或是编译不成功,make就不会处理。如果在make找到了依赖关系之后,冒号后面的文件不存在,make仍不工作

    通过上述分析,可以看出像clean这样没有被第一个目标文件直接或间接关联时,它后面所定义的命令将不会被自动执行,不过,可以显式使make执行。即使用命令make clean,以此来清除所有的目标文件,并重新编译。

    在编程中,如果这个工程已被编译过了,当修改了其中一个源文件时,比如test.c,根据依赖性,目标test.o会被重新编译(也就是在这个依赖性关系后面所定义的命令),则test.o文件也是最新的,即test.o文件的修改时间要比test要新,所以test也会被重新连接了。

    3 定义变量:

    ltest=test.h test.c

    上面的makefiletest可以改写为:

    test : test.o

    gcc -o test test.o

    test.o: $(ltest)

    gcc -c test.c

    clean:

    rm test.o test

    4 makefile文件的自动推导

    test : test.o

    gcc -o test test.o

    test.o: test.h

    clean:

    rm test.o test

    看一下test.o这个target,省略了 prerequisites的 test.c和command的gcc -c test.c,这些是target为test.o能推导出来的.

    5 清空目标文件

    .PHONY : clean

    clean :

    -rm test.o test

    前面说过,.PHONY表示clean是一个“伪目标”,而在rm命令前面加了一个小减号的目的是,如果某些文 件出现问题将被忽略,继续进行后面的操作。当然,clean的规则不要放在文件的开头,否则会变成make的 默认目标。不成文的规矩是“clean从来都放在文件的最后”

    6.注释:

    #. 为行注释,与//类似

    7.显示指定makefile文件名

    将makefiletest改为make.test

    make -f make.test

    8.TAB键

    为command命令的识别键,在command头使用,最好不要用在其它地方

    9.包含 其它 makefile文件

    include <filename>

    filename可以是当前操作系统Shell的文件模式(可以保含路径和通配符)。在include前面可以有一些空字符,但是绝不能以[Tab]键开始。include和<filename>可以用一个或多个空格隔开。举个例子,有这样几个makefile文件:a.mk、b.mk、c.mk,还有一个文件叫foo.make,以及一个变量$(bar),其包含了e.mk和f.mk,下面的语句:

    include foo.make *.mk $(bar)

    等价于:

    include foo.make a.mk b.mk c.mk e.mk f.mk

    10 -include和sinclude 都可以ignore error,

    11. make的工作顺序

    (1) 读入所有的makefile文件。

    (2) 读入被include包括的其他makefile文件。

    (3) 初始化文件中的变量。

    (4) 推导隐式规则,并分析所有规则。

    (5) 为所有的目标文件创建依赖关系链。

    (6) 根据依赖关系,决定哪些目标要重新生成。

    (7) 执行生成命令。

    12.转义字符与通配符

    /

    *,?,[...],~

    其它请参见用户手册.

    展开全文
  • 学习如何写Makefile

    2018-10-10 11:14:56
    转载方便自己随时学习,随时查询,感谢原创大神的辛苦付出和无私奉献...或许很多Winodws的程序员都不知道这个东西,因为那些Windows的IDE都为你做了这个工作,但我觉得要作一个好的和professional的程序员,makefile...
  • 比较系统的描述了makefile的写法,可以让你你在最短的时间内了解并自己撰写makefile
  • 以c语言为例子,我们的程序源文件需要经过编译,生成object...在Linux系统下,这个过程需要我们手动实现在windows下的IDE完成了makefile的工作。但是在linux,unix下编译就离不开makefilemakefile关系到整个工程的...
  • 手把手教你如何写Makefile

    千次阅读 2010-01-22 13:27:00
    手把手教你如何写Makefile一、Makefile的规则在讲述这个Makefile之前,还是让我们先来粗略地看一看Makefile的规则。target ... : prerequisites ...command......target也就是一个目标文件,可以是Object F

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 1,300
精华内容 520
关键字:

如何写makefile