手动建立makefile简单实例解析

手动建立makefile简单实例解析

ID:39577023

大小:39.50 KB

页数:5页

时间:2019-07-06

手动建立makefile简单实例解析_第1页
手动建立makefile简单实例解析_第2页
手动建立makefile简单实例解析_第3页
手动建立makefile简单实例解析_第4页
手动建立makefile简单实例解析_第5页
资源描述:

《手动建立makefile简单实例解析》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、手动建立makefile简单实例解析    假设我们有一个程序由5个文件组成,源代码如下:  /*main.c*/    #include"mytool1.h"  #include"mytool2.h"    intmain()  {  mytool1_print("hellomytool1!");  mytool2_print("hellomytool2!");  return0;  }      /*mytool1.c*/    #include"mytool1.h"  #include    voidmytool

2、1_print(char*print_str)  {  printf("Thisismytool1print:%s",print_str);  }      /*mytool1.h*/    #ifndef_MYTOOL_1_H  #define_MYTOOL_1_H  voidmytool1_print(char*print_str);  #endif      /*mytool2.c*/    #include"mytool2.h"  #include    voidmytool2_print(char*print

3、_str)  {  printf("Thisismytool2print:%s",print_str);  }      /*mytool2.h*/    #ifndef_MYTOOL_2_H  #define_MYTOOL_2_H  voidmytool2_print(char*print_str);  #endif    首先了解一下make和Makefile。GNUmake是一个工程管理器,它可以管理较多的文件。我所使用的RedHat9.0的make版本为GNUMakeversion3.79.1。使用make的最

4、大好处就是实现了“自动化编译”。如果有一个上百个文件的代码构成的项目,其中一个或者几个文件进行了修改,make就能够自动识别更新了的文件代码,不需要输入冗长的命令行就可以完成最后的编译工作。make执行时,自动寻找Makefile(makefile)文件,然后执行编译工作。所以我们需要编写Makefile文件,这样可以提高实际项目的工作效率。    在一个Makefile中通常包含下面内容:    1、需要由make工具创建的目标体(target),通常是目标文件或可执行文件。  2、要创建的目标体所依赖的文件(dep

5、endency_file)。  3、创建每个目标体时需要运行的命令(command)。    格式如下:  target:dependency_files  command    target:规则的目标。通常是程序中间或者最后需要生成的文件名,可以是.o文件、也可以是最后的可执行程序的文件名。另外,目标也可以是一个make执行的动作的名称,如目标“clean”,这样的目标称为“伪目标”。    dependency_files:规则的依赖。生成规则目标所需要的文件名列表。通常一个目标依赖于一个或者多个文件。     

6、 command:规则的命令行。是make程序所有执行的动作(任意的shell命令或者可在shell下执行的程序)。一个规则可以有多个命令行,每一条命令占一行。注意:每一个命令行必须以[Tab]字符开始,[Tab]字符告诉make此行是一个命令行。make按照命令完成相应的动作。这也是书写Makefile中容易产生,而且比较隐蔽的错误。命令就是在任何一个目标的依赖文件发生变化后重建目标的动作描述。一个目标可以没有依赖而只有动作(指定的命令)。比如Makefile中的目标“clean”,此目标没有依赖,只有命令。它所指定

7、的命令用来删除make过程产生的中间文件(清理工作)。      在Makefile中“规则”就是描述在什么情况下、如何重建规则的目标文件,通常规则中包括了目标的依赖关系(目标的依赖文件)和重建目标的命令。make执行重建目标的命令,来创建或者重建规则的目标(此目标文件也可以是触发这个规则的上一个规则中的依赖文件)。规则包含了目标和依赖的关系以及更新目标所要求的命令。  Makefile中可以包含除规则以外的部分。一个最简单的Makefile可能只包含规则描述。规则在有些Makefile中可能看起来非常复杂,但是无论规

8、则的书写是多么的复杂,它都符合规则的基本格式。    下面就可以写出第一个Makefile了。  main:main.omytool1.omytool2.o  gcc-omainmain.omytool1.omytool2.o  main.o:main.cmytool1.hmytool2.h  gcc-cmain.c  mytoo

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。