网站有什么到期,电脑版百度网盘,成都旅游必去十大景点推荐冬天,和淘宝同时做电商的网站Makefile 的引入是为解决多文件项目中手动编译繁琐易错、缺乏自动化构建、项目管理维护困难以及跨平台构建不便等问题#xff0c;实现自动化、规范化的项目构建与管理 MakeFile 简单的来说,MakeFile就是编写编译命令的文件 文件编写格式 目标:依赖文件列表 Tab命令列表… Makefile 的引入是为解决多文件项目中手动编译繁琐易错、缺乏自动化构建、项目管理维护困难以及跨平台构建不便等问题实现自动化、规范化的项目构建与管理 MakeFile 简单的来说,MakeFile就是编写编译命令的文件 文件编写格式 目标:依赖文件列表 Tab命令列表 1,目标:通常是要产生的文件名称,目标可以是可执行文件或其他obj文件,也可是一个动作的名称 2,依赖文件:是用来输入从而产生目标文件,一个目标通常有几个依赖文件(也可以没有) 3,命令:make执行的动作,一个规则可以含几个命令(也可以没有);有多个命令是,每个命令占一行 如: main:main.c gcc main.c -o main clear: rm main 注意: 当目标后没有依赖文件,我们将其称之为假想目标 变量
系统变量 由系统提供的变量 make工具会拷贝系统的环境变量并将其设置为makefile的变量,在makefile中可直接读取或修改拷贝后的变量 查看系统变量命令: env 修改或添加系统变量 export 变量名值 注意: export是导入的意思 注意: 只是临时修改,当dos关闭后,将不存在 如:makefile编写如下 main:make.o myutils.o gcc main.o myutils.o -o main clear: rm main *.o myprint: echo ${PWD} *.o 是一个通配符表达式表示要删除当前目录下所有后缀为 .o 的目标文件 echo 是用于在终端打印输出内容的命令${PWD} 是一个环境变量引用在类 Unix 系统中PWD 表示当前工作目录即 “Present Working Directory”所以当执行这个 myprint 目标对应的命令时会在终端打印出当前所在的工作目录路径信息。 自定义变量:程序员在编写makefile文件中自定义的变量 预定义变量:make命令提供的变量 自定义变量 定义: 变量名变量值 使用: 取值;${变量名}或$(变量名) 拼接:变量名值 注意: 1,makefile变量名可以以数字开头 2,变量的大小是敏感的 3,变量一般都在makefile的头部定义 4,变量几乎可以在makefile的任何地方使用 预定义变量 makefile 中有许多预定义变量这些变量具有特殊的含义可在 makefile 中直接使 用。 $ 目标名 $ 依赖文件列表中的第一个文件 $^ 依赖文件列表中除去重复文件的部分 AR 归档维护程序的程序名默认值为 ar ARFLAGS 归档维护程序的选项 AS 汇编程序的名称默认值为 as ASFLAGS 汇编程序的选项 CC C 编译器的名称默认值为 gcc CFLAGS C 编译器的选项 CPP C 预编译器的名称默认值为 $(CC) -E CPPFLAGS C 预编译的选项 CXX C编译器的名称默认值为 g CXXFLAGS C编译器的选项 编写模板 EXEC 可执行文件名 OBJ 二进制文件名列表 FLAG -wall -g $(EXEC):$(OBJ) $(CC) $(OBJ) -o $(EXEC) $(-wall -g) 二进制文件名1.o:源文件名1.c $(CC) -c 源文件名.c -o 二进制文件名.o 二进制文件名2.o:源文件名2.c $(CC) -c 源文件名.c -o 二进制文件名.o clear: rm $(EXEC) *.o 注意:源文件名与二进制文件名相同 make命令 解析makefile文件的命令 检查make命令是否存在 which make 或 make --version GNU Make名词 GNU make 是一种代码维护工具 make 工具会根据 makefile 文件定义的规则和步 骤完成整个软件项目的代码维护工作 优点: 1、管理我们的源文件 2、会检查每个源文件是否被修改 只会再次只编译修改过的源文件提高编译效 率 缺点: makefile文件: 在 Window 上的集成开发环境下会自动生成 在 Linux 下需要手 动编写。 使用 语法 : make 目标 注意: 目标可以没有 , 默认执行第一个目标 注意 1、 make 默认在工作目录中寻找名为 GNUmakefile 、 makefile 、 Makefile 的文件作为 makefile 输入文件 2、 -f 可以指定以上名字以外的文件作为 makefile 输入文件 3、若使用 make 命令时没有指定目标则 make 工具默认会实现 makefile 文件内的第一个目标然后退出。 如 : 在控制台输入 1,输入 make, 默认执行 makefile 文件中第一个目标中命令 2,输入 make 目标 , 执行 makefile 文件中指定的目标中的命令 3,当 makefile 的文件名不是 GNUmakefile 、 makefile 、 Makefile 时 , 可以输入make -f 文件名 , 指 makefile 文件