融金基础教材系列@make工具及makefile规则

合集下载

makefile 目标命名规则

makefile 目标命名规则

makefile 目标命名规则
在Makefile中,目标的命名是灵活的,一般可以根据具体需
求进行命名。

以下是常见的Makefile目标命名规则:
1. 默认目标:通常为第一个目标,在执行make命令时被调用。

2. 伪目标:以“.PHONY”声明的目标,用于表示该目标不对应
任何实际的文件。

3. 全局目标:没有依赖项的目标,可以作为整个Makefile的
入口点。

4. 文件目标:对应具体的文件,并指定了它的依赖关系。

在命名目标时,可以遵循以下几个约定:
1. 使用小写字母:目标名称最好使用小写字母,以确保与系统命令或其他变量区分开。

2. 使用有意义的名称:目标名称应具有描述性,以便其他人能够理解它的用途。

3. 使用驼峰命名法:对于复合词,可以使用驼峰命名法(例如:buildTarget)来提高可读性。

4. 使用下划线分隔:在目标名称中使用下划线可以提高可读性(例如:build_target)。

需要注意的是,在Makefile中,目标名称是大小写敏感的。

因此,确保在目标命名中保持一致性是很重要的。

makefile的用法

makefile的用法

makefile的用法Makefile是一种用于自动化编译程序的工具,它可以根据源代码文件的依赖关系,自动编译出最终的可执行文件。

Makefile的使用可以大大提高程序的开发效率和可维护性,下面我们来详细了解一下Makefile的用法。

一、Makefile的基本语法Makefile的基本语法由一系列规则组成,每个规则由以下几部分组成:1. 目标(Target):表示需要生成的文件名或者是一个伪目标,如clean。

2. 依赖(Prerequisites):表示生成目标所依赖的文件或者是其他目标。

3. 命令(Command):表示生成目标的具体命令。

例如,下面是一个简单的Makefile规则:```hello: main.o hello.ogcc -o hello main.o hello.omain.o: main.cgcc -c main.chello.o: hello.cgcc -c hello.c```这个Makefile规则表示需要生成一个名为hello的可执行文件,它依赖于main.o和hello.o两个目标文件。

生成hello文件的具体命令是gcc -o hello main.o hello.o。

同时,main.o和hello.o两个目标文件分别依赖于main.c和hello.c两个源代码文件,生成它们的具体命令是gcc -c main.c和gcc -c hello.c。

二、Makefile的常用命令1. make:执行Makefile文件,生成目标文件。

2. make clean:删除所有生成的目标文件。

3. make install:将生成的目标文件安装到指定的目录中。

4. make uninstall:卸载已经安装的目标文件。

5. make help:显示Makefile文件中定义的所有规则。

三、Makefile的高级用法1. 变量Makefile中可以定义变量,用于存储一些常用的参数或者路径。

makefile 目标 规则

makefile 目标 规则

Makefile 是一种用来管理软件编译过程的工具,它通过定义一系列目标和规则来自动化编译过程。

在软件开发过程中,Makefile 扮演着非常重要的角色,能够提高编译效率,减少人为错误,并且方便维护代码。

下面将从 makefile 的概念、目标、规则三个方面展开讨论。

一、 makefile 的概念1. 什么是 makefileMakefile 是一个包含一系列规则的文件,用来指示 make 命令如何编译和信息程序。

它描述了每个文件的依赖关系和编译规则,使得整个工程的编译过程更加自动化和可靠。

2. makefile 的作用Makefile 主要用于管理软件项目的构建过程,它能够根据代码的更新情况自动判断哪些文件需要重新编译,从而减少不必要的编译时间。

makefile 也可以定义一些通用的编译规则,方便在不同的开发环境下使用。

二、 makefile 的目标1. 目标是什么在 makefile 中,目标是指我们要生成的文件或者执行的动作。

它可以是一个可执行文件,也可以是一个中间文件或者一个操作。

2. 如何定义目标在 makefile 中,我们可以使用下面的语法来定义一个目标:```target: dependencies[tab]mand```其中,target 表示目标文件或动作名称,dependencies 表示该目标依赖的文件或动作mand 则是执行该目标时所需要执行的命令。

三、 makefile 的规则1. 规则的作用规则是指在 makefile 中定义的编译规则,它描述了如何将源文件编译成目标文件的过程。

在 makefile 中,规则通常包含了依赖关系和具体的编译命令。

2. 规则的语法在 makefile 中,我们可以使用下面的语法来定义一个规则:```target: dependencies[tab]mand```其中,target 表示目标文件,dependencies 表示该目标依赖的文件mand 则是执行该目标时所需要执行的命令。

makefile文件的显示规则

makefile文件的显示规则

makefile文件的显示规则Makefile文件是用于构建和管理软件项目的工具,它定义了一系列规则,用来指导如何编译、链接和安装软件。

在本文中,我们将详细介绍Makefile文件中的显示规则。

一、目标规则(T arget Rule)目标规则是Makefile中最常见的一种规则,它用来指定如何生成一个目标文件。

一个目标规则由目标、依赖和命令组成。

目标是我们要生成的文件,依赖是生成目标文件所需要的其他文件,而命令则是生成目标文件的具体步骤。

例如,我们可以定义一个目标规则来生成一个名为"hello"的可执行文件:```hello: main.o func.ogcc -o hello main.o func.o```在这个例子中,"hello"是目标文件,"main.o"和"func.o"是依赖文件,而命令"gcc -o hello main.o func.o"则是生成目标文件的具体步骤。

二、伪目标规则(Phony T arget Rule)伪目标规则用来指定一些特殊的目标,它们并不是真正的文件,而是一些需要执行的命令。

伪目标规则的目标名前面通常会加上一个"phony"修饰符,以便与真正的文件区分开来。

例如,我们可以定义一个伪目标规则来清理编译生成的文件:```.PHONY: cleanclean:rm -f hello *.o```在这个例子中,".PHONY"表示这是一个伪目标规则,"clean"是目标名,而命令"rm -f hello *.o"则是清理编译生成的文件的具体步骤。

三、模式规则(Pattern Rule)模式规则是一种更加抽象的规则,它可以匹配多个目标文件。

模式规则使用通配符来表示目标和依赖中的文件名模式,并使用"%"来表示匹配的部分。

makefile的语法规则

makefile的语法规则

Makefile的语法规则Makefile是GNU构建系统(GNU Build System,简称GNU Make),GNU Make是一个自动化构建工具,用于构建编译程序。

Makefile由一系列语法规则构成,这些规则定义了如何从源文件生成可执行文件或其他目标文件。

基本语法目标:目标是makefile要达到的最终目的,可以是一个可执行程序、一个库文件、一个文档文件等。

依赖:依赖是目标文件所依赖的其他文件,当依赖文件发生变化时,目标文件也需要重新生成。

命令:命令是生成目标文件所需的具体操作,可以是编译、链接、拷贝等。

示例:目标:hello依赖:hello.c命令:gcc -o hello hello.c这条规则定义了如何从源文件hello.c生成可执行文件hello。

当hello.c发生变化时,make会自动执行gcc -o hello hello.c命令重新生成hello可执行文件。

变量变量用于存储信息,变量名以开头,例如:CFLAGS = -Wall -O2这条代码定义了一个名为CFLAGS的变量,值为"-Wall -O2"。

变量可以在命令中使用,例如:目标:hello依赖:hello.c命令:gcc CFLAGS -o hello hello.c这条规则中,CFLAGS变量的值被用在了gcc命令中。

函数函数用于执行特定的任务,函数名以(开头,例如:(info 目标文件是 (TARGET))这条代码定义了一个名为info的函数,当make执行这条代码时,会输出“目标文件是(TARGET)”的信息。

目標:hello依賴:hello.c命令:(CC) (CFLAGS) -o hello hello.cCC = gccCFLAGS = -Wall -O2这条规则重写了上面两个规则。

CC和CFLAGS被定义为变量,并且在命令中使用了这些变量。

当make执行这条规则时,会使用gcc编译器和-Wall -O2编译标志来编译hello.c文件,并将输出的可执行文件命名为hello。

makefile文件语法

makefile文件语法

makefile文件语法Makefile是一种用于自动化构建过程的工具,它使用一种特定的语法来定义构建规则和依赖关系。

下面是一些Makefile的基本语法规则:1. 目标(Target):目标是指要构建的程序或文件。

它通常以冒号(:)开头,后面跟着一个或多个依赖项(dependencies)。

```makefiletarget: dependenciescommands```2. 依赖项(Dependencies):依赖项是指要构建目标所必需的文件或目标。

在Makefile中,依赖项以空格分隔。

3. 命令(Commands):命令是指在构建目标时执行的命令行指令。

这些命令可以是编译、链接或其他任何必要的操作。

4. 变量(Variables):Makefile允许使用变量来存储值,以便在构建过程中重复使用。

变量以符号开头,后面跟着变量名。

```makefileVAR = value```5. 模式规则(Pattern Rules):模式规则允许根据文件模式匹配来构建目标。

它们使用通配符来匹配文件名,并在匹配的文件上执行相应的命令。

```makefiletargets : patterncommands```6. 条件语句(Conditionals):Makefile支持条件语句,可以根据条件执行不同的命令或规则。

条件使用ifdef、ifndef、ifeq等关键字定义。

7. 注释(Comments):Makefile使用井号()作为注释标记,任何在该符号之后的内容都会被视为注释,并被忽略。

8. 自动变量(Automatic Variables):Makefile提供了一些自动变量,可以在命令中使用,以获取有关目标、依赖项或文件名的信息。

例如,$表示当前目标,$<表示第一个依赖项等。

这些是Makefile的一些基本语法规则,但还有更多高级特性和用法,可以参考Make工具的文档或相关教程进行深入学习。

makefile的模式规则

Makefile中的模式规则是一种特殊的规则,它允许你使用模式来匹配目标文件,然后根据匹配结果执行相应的命令。

模式规则中的目标文件名包含一个模式字符“%”,该字符可以匹配任何非空字符串。

在模式规则中,目标文件是一个带有模式字符“%”的文件,使用模式来匹配目标文件。

一旦依赖目标中的“%”模式被确定,make 会被要求去匹配当前目录下所有的文件名,一旦找到,make就会执行规则下的命令。

在模式规则中,目标可能会是多个的,如果有模式匹配出多个目标,make就会产生所有的模式目标。

此时,make关心的是依赖的文件名和生成目标的命令这两件事。

以下是一个简单的Makefile模式规则示例:
```makefile
%.o : %.c
$(CC) -c $(CFLAGS) $(CPPFLAGS) $< -o $@
```
这个规则表示将所有的.c文件编译成.o文件。

其中,“$<”表示了所有依赖目标的挨个值,“$@”表示了所有目标的挨个值。

这些自动化变量将在后面的章节中详细讲述。

总的来说,Makefile的模式规则是一种强大的工具,它可以根据文件名模式自动构建目标文件,并执行相应的命令。

makefile文件语法规则

makefile文件语法规则Makefile文件的基本语法规则包括以下几点:1. 注释:以井号(#)开头的行被视为注释,不会被执行。

2. 规则:每条规则由一个目标文件和一组依赖文件组成,以及一个用于构建目标文件的命令。

规则的格式如下:Css:目标文件:依赖文件命令目标文件和依赖文件之间用冒号(:)分隔,命令部分指定了如何从依赖文件生成目标文件。

3. 变量:Makefile中可以使用变量来存储值,变量的值可以包含文本、空格、数字等。

变量名以美元符号($)开头,例如:Makefile:VAR = value命令= $VAR4. 函数:Makefile支持使用函数来执行更复杂的操作。

函数的语法如下:Scss:函数名(参数)Makefile中内置了一些常用的函数,如字符串操作函数、条件判断函数等。

也可以自定义函数。

5. 通配符:Makefile中可以使用通配符来匹配多个文件,常见的通配符有“*”和“?”。

例如,“*.c”表示匹配所有以“.c”结尾的文件,“a?b”表示匹配“ab”、“axb”、“ayb”等字符串。

6. 回声:在Makefile中,命令前面加上“@”符号可以关闭回声,即不会在执行命令时显示该命令。

例如:Makefile:@echo Hello, world!这条命令执行时不会输出“Hello, world!”的文本。

7. 模式规则:Makefile中的模式规则允许根据一组通配符匹配的文件来定义规则,格式如下:Makefile:模式:目标文件命令1命令2模式匹配的文件将按照指定的命令构建目标文件。

makefile规则

makefile规则makefile规则是指用于描述当make执行Makefile文件时,make 应该采取的动作。

makefile文件由一系列规则组成,并且每条规则都有由一个目标、零个或多个依赖条件和一系列可以对目标文件进行生成、删除和修改的指令构成。

1、静态模式规则:静态模式规则指明了在make执行规则的过程中,make会将特定的依赖关系用静态的模式规则处理。

通常使用固定长度的字符串来定义静态规则,并且字符串中可以包括多个模式,如“%.c”和“%.o”。

2、伪目标规则:伪目标规则可以用来定义一组目标,这些目标只有在其他目标依赖它们时才有可能被make执行。

例如,“clean”是一个伪目标,可以用来定义一组清理工作。

3、自动变量:自动变量是make文件规则中的特殊变量,可以使make更加聪明、更加灵活。

自动变量可以为make命令提供一些临时的信息,使make可以判断出依赖列表中目标的文件是什么,同时也可以为所有的目标提供一种标准的输出路径。

4、变量引用:变量引用是make中的一种重要特性,主要指的是在规则中可以使用一个或多个变量来引用其他变量。

变量引用可以让make在定义变量后不用继续修改makefile文件就能对变量进行操作。

5、函数式语法:函数式语法是make中的一种特殊语法,允许make在一个单独的语句中使用多行表达式。

函数式语法可以用来定义变量,从而减少代码冗余,提高makefile文件的可读性。

6、条件分支语句:条件分支语句是makefile文件中的一种语法,它使得make可以根据某些条件来执行特定的动作。

当make执行makefile文件时,如果if 条件判断成立,则会继续执行if中的语句;如果if条件不成立,则执行else中的语句。

7、包含语句:包含语句是makefile文件中的一种重要语法,它允许make从另一个makefile文件中读取规则并执行它们。

通过此种方式,用户可以将makefile文件划分成多个文件,例如一个文件定义编译目标,另一个文件定义安装规则等,从而使makefile文件更加简洁。

makefile 中文手册 第四章 _ Makefile的规则

第四章:Makefile的规则本章我们将讨论Makefile的一个重要内容,规则。

熟悉规则对于书写Makefile至关重要。

Makefile中,规则描述了在何种情况下使用什么命令来重建一个特定的文件,此文件被称为规则“目标”(通常规则中的目标只有一个)。

规则中出目标之外的罗列的其它文件称为“目标”的依赖,而规则的命令是用来更新或者创建此规则的目标。

除了makefile的“终极目标”所在的规则以外,其它规则的顺序在makefile文件中没有意义。

“终极目标”就是当没有使用make 命令行指定具体目标时,make默认的更新的哪一个目标。

它是makefile文件中第一个规则的目标。

如果在makefile中第一个规则有多个目标的话,那么多个目标中的第一个将会被作为make的“终极目标”。

有两种情况的例外:1. 目标名以点号“.”开始的并且其后不存在斜线“/”(“./”被认为是当前目录;“../”被认为是上一级目录);2. 模式规则的目标。

当这两种目标所在的规则是Makefile的第一个规则时,它们并不会被作为“终极目标”。

“终极目标”是执行make的唯一目的,其所在的规则作为第一个被执行的规则。

而其它的规则是在完成重建“终极目标”的过程中被连带出来的。

所以这些目标所在规则在Makefile中的顺序无关紧要。

因此,我们书写的makefile的第一个规则应该就是重建整个程序或者多个程序的依赖关系和执行命令的描述。

4.1 一个例子我们来看一个规则的例子:foo.o : foo.c defs.h # module for twiddling the frobscc -c -g foo.c这是一个典型的规则。

看到这个例子,大家应该能够说出这个规则的各个部分之间的关系。

不过我们还是要把这个例子拿出来讨论。

目的是让我们更加明确地理解Makefile的规则。

本例第一行中,文件“foo.o”是规则需要重建的文件,而“foo.c”和“defs.h”是重建“foo.o”所要使用的文件。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

【融金教育】金融软件工程师定向培养 make工具及makefile规则目录1 MAKEFILE规则 (4)1.1目标行 (4)1.2命令行 (5)1.3宏定义行 (6)1.4伪指令 (7)1.4.1 伪指令include (7)1.4.2 伪指令“#” (8)2 后缀规则 (8)2.1双后缀规则 (8)2.2单后缀规则 (9)3 特殊目标 (10)4 特殊的宏 (11)5 MAKEFILE的应用 (12)1 makefile规则makefile是一个make的规则描述脚本文件,包括四种类型行:目标行、命令行、宏定义行和make伪指令行(如“include”)。

makefile文件中注释以“#”开头。

当一行写不下时,可以用续行符“\”转入下一行。

1.1 目标行目标行告诉make建立什么。

它由一个目标名表后面跟冒号“:”,再跟一个依赖性表组成。

例:example: depfile deptarget该目标行指出目标example与depfile和deptarget有依赖关系,如果depfile 或deptarget有修改,则重新生成目标。

example1 example2 example3: deptarget1 deptarget2 depfile该目标行指出目标名表中的example1、example2、example3这三个各自独立的目标是用相同的依赖列表和规则生成的。

clean:空的依赖列表说明目标clean没有其他依赖关系。

目标行后续的以Tab 开始的行是指出目标的生成规则,该Tab字符不能以空格代替。

例如:example.o:example.c example.hcc –c example.c该例子指出目标example.o依赖于example.c和example.h。

如果example.c或example.h其中之一改变了,就需要执行命令cc –c example.c重新生成目标example.o。

可以用文件名模式匹配来自动为目标生成依赖表,如:prog: *.c以下是一个简单的makefile 的例子:图 1 最简单的makefile 例make 使用makefile 文件时,从第一个目标开始扫描。

上例中的第一个目标为all ,所以目标clean 不会自动被执行,可以通过命令make clean 来生成目标。

1.2 命令行命令行用来定义生成目标的动作。

在目标行中分号“;”后面的文件都认为是一个命令,或者一行以Tab 制表符开始的也是命令。

如在上面的makefile 例中,第三行以Tab 字符开始的cc 命令即是一个命令行,说明要生成hello 应执行的命令。

也可以写成:hello:hello.o;cc –c hello –L…一般情况下,命令行的命令会在标准输出中回显出来,如对上面的makefile 执行make 时,标准输出如下:cc -c hello.ccc -o hello -L/usr/X11R6/lib -L/usr/lib -lXm -lXt -lX11 hello.o cc -c hello1.ccc -o hello1 -L/usr/X11R6/lib -L/usr/lib -lXm -lXt -lX11 hello1.o 如果不希望命令本身回显,可在命令前加@字符,如在上例中不希望回显cc–c hello.c和cc –c hello1.c,可修改makefile文件如下:图 2 抑制回显的makefile例对该makefile文件执行make时,标准输出如下:cc -o hello -L/usr/X11R6/lib -L/usr/lib -lXm -lXt -lX11 hello.occ -o hello1 -L/usr/X11R6/lib -L/usr/lib -lXm -lXt -lX11 hello1.o 可以看出,命令行前有@字符的不回显。

1.3 宏定义行在makefile中,可以使用宏定义减少用户的输入,例如上例中对hello和hello1的编译选项均为“-L/usr/X11R6/lib -L/usr/lib -lXm -lXt -lX11”,此时可以用宏来代替,如:图 3 使用宏定义的makefile例宏定义的基本语法是:name=value在定义宏时,次序不重要。

宏不需要在使用前定义。

如果一个宏定义多次,则使用最后一次的定义值。

可以使用“$”字符和“()”或“{}”来引用宏,例如:cc –o hello.o $(CCFLAGS) hello.o也可以将一个宏赋值给另一个宏,但这样的定义不能循环嵌套,如:A=value1B=value2C=$(A) $(B)等价于C=value1 value21.4 伪指令makefile大部分由宏定义行、命令行和目标行组成。

第四种类型是make伪指令行。

make伪指令没有标准化,不同的make可能支持不同的伪指令集,使得makefile有一定的不兼容性。

如果要考虑移植性问题,则要避免使用make伪指令。

但有一些伪指令,如include,由于使用比较多,很多不同make都提供该伪指令。

1.4.1伪指令include该伪指令类似C语言中的#include,它允许一次编写常用的定义并包括它。

include伪指令必须在一行中,第一个元素必须是include,并且跟一个要包含的文件名,如:include default.mk1.4.2 伪指令“#”“#”字符也是make 的伪指令,它指出“#”后面的文件是注释,如: PROGNAME=test # define macro#don't modify this2 后缀规则2.1 双后缀规则在前面的makefile 例中有许多重复内容,例如,生成hello 和hello1的命令类似,生成hello.o 和hello1.o 的命令也类似,除了编译或链接的文件不一样外,其它均相同,这时,我们就可以使用后缀规则。

首先看一个双后缀的例子:图 4 使用双后缀规则的makefile 例后缀规则使用特殊的目标名“.SUFFIXES ”。

第一行中.SUFFIXES 的依赖表为空,用来清除原有的后缀规则,因为.SUFFIXES 可以在makefile 中多次使用,每一次都将新的后缀规则加入以前的后缀规则中。

第二行中指定后缀规则为“.c .o ”,即表示将所有的.c 文件转换为.o 文件。

第三行指定将.c 文件转换成.o 文件的方法。

$(CC)为make 的预定义宏,其默认值为cc ,$<为特殊的宏,代替当前的源文件,即所有要编译的.c 文件。

第六行指定目标hello 和hello1的生成方法。

$@为特殊的宏,代替当前的目标名,即hello和hello1,$@.o即为hello.o和hello1.o。

上例介绍的是双后缀规则,即它包含两个后缀,如.c.o,用来把一个C源文件编译为目标文件。

双后缀规则描述如何由第一个后缀类型的文件生成第二个后缀类型的文件,例如:.c.o规则描述如何由.c文件生成.o文件。

2.2 单后缀规则单后缀规则描述了怎样由指定后缀的文件生成由它基名为名字的文件。

例如使用单后缀规则.c,可以由hello.c和hello1.c生成hello和hello1文件。

例如将前面的makefile改为:图 5 使用单后缀规则的makefile例由于.c后缀规则为make标准后缀规则,make为其指定了相应的命令行,所以在makefile中可以不用再指定其目标生成的具体命令行。

下表是make提供的标准后缀规则。

表 1 make标准后缀规则3特殊目标在后缀规则中使用了特殊目标.SUFFIXES,用来指定新增的后缀规则。

make 还提供了几个特殊目标来设置make的行为,下面为一些特殊的目标:●.IGNOREmake在执行命令行时,如果返回的是错误码,make的缺省动作是停止并退出。

增加该目标后,make将忽略命令行返回的错误码,并继续执行后续的操作。

●.SILENT前面已经介绍过,make在执行命令行时会回显命令行内容,在命令行前增加“@”字符将抑制该命令行的回显。

如果增加该目标,所有的命令行不再回显,相当于在每个命令行前均增加了“@”字符。

●.PRECIOUS当收到一个信号或从shell命令返回非零的错误码时,make删除它所有已建立的文件。

但有些文件即使出了错误,用户也不想让make删除,这些文件可以作为.PRECIOUS目标的参数。

它可以在一个makefile中出现多次,每一次都累积文件列表。

●.SUFFIXES它为makefile指定新的后缀规则,新的后缀规则作为.SUFFIXES的依赖表给出。

.SUFFIXES可以在一个makefile中多次使用,每一次都将新的后缀规则加入以前的后缀规则中,如果.SUFFIXES的依赖表为空,则设置后缀规则表为空。

4特殊的宏为简单使用规则,make提供了几个特殊的宏:●$@整个当前目标名的值可以由宏“$@”来代替。

●$<当前的源文件由“$<”来代替。

例如,在前面的例子中用到了$(CC) –c $<,其中的“$<”是所有要编译的.c文件。

宏“$<”仅在后缀规则或.DEFAULT中有效。

●$*当前目标的基名由宏“$*”来代替。

例如目标的名字是hello.o,则基名就是除去了后缀.o的hello。

以上介绍的特殊宏使用了make自身的规则,用户不可以改变。

下表介绍了C 中预定义的宏。

5makefile的应用当调用make时,它在当前目录下搜索文件名是“makefile”或“Makefile”的文件,并执行。

如果不想使用上述缺省文件,可以使用命令行中的“-f”来指定文件,如将编写的makefile命名为mklib,则指定为“make –f mklib”。

相关文档
最新文档