make工程管理器 17p

make工程管理器 17p

ID:40102942

大小:111.00 KB

页数:17页

时间:2019-07-21

make工程管理器 17p_第1页
make工程管理器 17p_第2页
make工程管理器 17p_第3页
make工程管理器 17p_第4页
make工程管理器 17p_第5页
资源描述:

《make工程管理器 17p》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、Make工程管理器Make工程管理器所谓工程管理器,是指管理较多的文件的。可以试想一下,有一个上百个文件的代码构成的项目,如果其中只有一个或少数几个文件进行了修改,按照之前所学的编译工具,就不得不把这所有的文件重新编译一遍,因为编译器并不知道哪些文件是最近更新的,而只知道需要包含这些文件才能把源代码编译成可执行文件,于是,程序员就不得不再重新输入数目如此庞大的文件名以完成最后的编译工作。所以,人们就希望有一个工程管理器能够自动识别更新了的文件代码,同时又不需要重复输入冗长的命令行,这样,Make工程管理器也就应运而生了

2、。Make工程管理器实际上,Make工程管理器就是“自动编译管理器”,这里的“自动”是指它能够根据文件时间戳自动发现更新过的文件而减少编译的工作量,同时,它通过读入Makefile文件的内容来执行大量的编译工作。用户只需编写一次简单的编译语句就可以了。它大大提高了实际项目的工作效率。Makefile基本结构Makefile是Make读入的唯一配置文件。在一个Makefile中通常包含如下内容:需要由make工具创建的目标体(target),通常是目标文件或可执行文件;要创建的目标体所依赖的文件(dependency_f

3、ile);创建每个目标体时需要运行的命令(command)。它的格式为:target:dependency_filescommandMakefile基本结构例如,有两个文件分别为hello.c和hello.h,创建的目标体为hello,那么,对应的Makefile就可以写为:hello:hello.oicc–ohellohello.ohello.o:hello.chello.hicc–ohello.o–chello.c接着就可以使用make了。使用make的格式为:maketarget这样make就会自动读入Makef

4、ile(也可以是首字母小写makefile)并执行对应target的command语句,并会找到相应的依赖文件。如果直接运行make,则建立Makefile中的第一个目标。注意:在Makefile中的每一个command前必须有“Tab”符,否则在运行make命令时会出错。Makefile基本结构例1:helloword:file1.ofile2.oiccfile1.ofile2.o-ohellowordfile1.o:file1.chead.hicc-cfile1.c-ofile1.ofile2.o:file2.ch

5、ead.hicc-cfile2.c-ofile2.oMakefile变量为了进一步简化编辑和维护Makefile,make允许在Makefile中创建和使用变量。变量是在Makefile中定义的名字,用来代替一个文本字符串,该文本字符串称为该变量的值。在具体要求下,这些值可以代替目标体、依赖文件、命令以及makefile文件中其它部分。在Makefile中的变量定义有两种方式:一种是递归展开方式,另一种是简单方式。Makefile变量递归展开方式定义的变量是在引用在该变量时进行替换的,即如果该变量包含了对其他变量的应用

6、,则在引用该变量时一次性将内嵌的变量全部展开,虽然这种类型的变量能够很好地完成用户的指令,但是它也有严重的缺点,如不能在变量后追加内容。为了避免上述问题,简单扩展型变量的值在定义处展开,并且只展开一次,因此它不包含任何对其它变量的引用,从而消除变量的嵌套引用。递归展开方式的定义格式为:VAR=var简单扩展方式的定义格式为:VAR:=varMake中的变量使用均使用格式为:$(VAR)Makefile变量变量名是不包括“:”、“#”、“=”结尾空格的任何字符串。同时,变量名中包含字母、数字以及下划线以外的情况应尽量避免

7、,因为它们可能在将来被赋予特别的含义。变量名是大小写敏感的,例如变量名“foo”、“FOO”、和“Foo”代表不同的变量。Makefile变量Makefile中的变量分为用户自定义变量、预定义变量、自动变量及环境变量。自定义变量的值由用户自行设定,而预定义变量和自动变量是通常在Makefile都会出现的变量,其中部分有默认值,也就是常见的设定值,当然用户可以对其进行修改。Makefile中常见预定义变量AR库文件维护程序的名称,默认值为arAS汇编程序的名称,默认值为asCC       C编译器的名称,默认值为ccC

8、PP     C预编译器的名称,默认值为$(CC)–ECXX     C++编译器的名称,默认值为g++FC       FORTRAN编译器的名称,默认值为f77RM文件删除程序的名称,默认值为rm–fARFLAGS库文件维护程序的选项,无默认值ASFLAGS汇编程序的选项,无默认值CFLAGS     C编译器的选项,无默认值

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

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

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