相关推荐
-
跟我一起写 Makefile 作者:陈皓 整理:祝冬华
跟我一起写 Makefile 作者:陈皓 整理:祝冬华 来源网络,希望能与大家分享这份学习资料,资源分数也设置了最低值,如有侵权,请联系我删除文件。 第一部分、概述 (6) 第二部分、关于程序的编译和链接 (6) 第三部分、Makefile 介绍 (7) 一、Makefile的规则 (7) 二、一个示例 (8) 三、make是如何工作的 (9) 四、makefile中使用变量 (10) 五、让make自动推导 (11) 六、另类风格的makefile (12) 七、清空目标文件的规则 (13) 第四部分、Makefile 总述 (13) 一、Makefile里有什么? (13) 1、显式规则。 (14) 2、隐晦规则。 (14) 3、变量的定义。 (14) 4、文件指示。 (14) 5、注释。 (14) 二、Makefile的文件名 (15) 三、引用其它的Makefile (15) 四、环境变量 MAKEFILES (16) 五、make的工作方式 (16) 第五部分、书写规则 (17) 一、规则举例 (17) 二、规则的语法 (17) 三、在规则中使用通配符 (18) 四、文件搜寻 (19) 五、伪目标 (20) 六、多目标 (22) 七、静态模式 (22) 八、自动生成依赖性 (24) 第六部分书写命令 (25) 一、显示命令 (26) 二、命令执行 (26) 三、命令出错 (27) 四、嵌套执行make (28) 五、定义命令包 (30) 第七部分使用变量 (30) 一、变量的基础 (31) 二、变量中的变量 (32) 三、变量高级用法 (34) 四、追加变量值 (37) 五、override 指示符 (37) 六、多行变量 (38) 八、目标变量 (39) 九、模式变量 (40) 第八部分使用条件判断 (40) 一、示例 (40) 二、语法 (42) 第九部分使用函数 (43) 一、函数的调用语法 (44) 二、字符串处理函数 (44) 1、subst (44) 2、patsubst (45) 3、strip (45) 4、findstring (46) 5、filter (46) 6、filter-out (46) 7、sort (47) 8、word (47) 9、wordlist (47) 10、words (47) 11、firstword (48) 12、字符串函数实例 (48) 三、文件名操作函数 (48) 1、dir (48) 2、notdir (48) 3、suffix (49) 4、basename (49) 5、addsuffix (49) 6、addprefix (49) 7、join (50) 四、foreach 函数 (50) 五、if 函数 (50) 六、call函数 (51) 七、origin函数 (51) “undefined” (52) “default” (52) “file” (52) “command line” (52) “override” (52) “automatic” (52) 八、shell函数 (53) 九、控制make的函数 (53) 1、error (53) 2、warning (54) 第十部分 make 的运行 (54) 二、指定Makefile (54) 三、指定目标 (55) “all” (56) “clean” (56) “install” (56) “print” (56) “tar” (56) “dist” (56) “TAGS” (56) “check”和“test” (56) 四、检查规则 (57) 五、make的参数 (57) 第十一部分隐含规则 (61) 一、使用隐含规则 (61) 二、隐含规则一览 (62) 1、编译C程序的隐含规则 (63) 2、编译C++程序的隐含规则 (63) 3、编译Pascal程序的隐含规则 (63) 4、编译Fortran/Ratfor程序的隐含规则 (63) 5、预处理Fortran/Ratfor程序的隐含规则 (63) 6、编译Modula-2程序的隐含规则 (63) 7、汇编和汇编预处理的隐含规则 (64) 8、链接Object文件的隐含规则 (64) 9、Yacc C程序时的隐含规则 (64) 10、Lex C程序时的隐含规则 (64) 11、Lex Ratfor程序时的隐含规则 (65) 12、从C程序、Yacc文件或Lex文件创建Lint库的隐含规则 (65) 三、隐含规则使用的变量 (65) 1、关于命令的变量。 (65) 2、关于命令参数的变量 (66) 四、隐含规则链 (67) 五、定义模式规则 (68) 1、模式规则介绍 (68) 2、模式
-
跟我一起写 Makefile(完整版)
文章目录作者介绍概述关于程序的编译和链接Makefile 介绍Makefile的规则一个示例make是如何工作的makefile中使用变量让make自动推导另类风格的makefile清空目标文件的规则Makefile 总述Makefile里有什么?显式规则隐晦规则变量的定义文件指示注释Makefile的文件名引用其它的Makefile环境变量 MAKEFILESmake的工作方式书写规则规则举例规...
-
跟我一起写 Makefile -- 陈皓
跟我一起写 Makefile(一) 概述 关于程序的编译和链接 Makefile 介绍 一、Makefile的规则 二、一个示例 跟我一起写 Makefile(二) 三、make是如何工作的 四、makefile中使用变量 五、让make自动推导 六、另类风格的makefile 七、清空目标文件的规则 跟我一起写 Makefile(三) Makefile 总述 一、Makefile里有什么? 二、Makefile的文件名 三、引用其它的Makefile 四、环境变量 MAKEFILES 五、mak
-
跟我一起写Makefile(工程笔记版)
实操如下
-
linux同一路径下编写多个makefile实现方法
一、编写 如果在同一路径编写多个makefile的话,只需要修改文件的后缀名为mak,文件名自己定 二、使用makefile make -f xxx.mak 三、示例 1、编写代码 2、编写makefile #build tools SHELL = /bin/sh CC = gcc AR = ar VERSION = V1.0 #target LIB_TARGET = mqtt_fun #add define DEBUG = -DMQTTCLIENT_PLATFORM_HEADER=MQTTLinux.
-
两个简单的makefile
两个简单的makefile
-
Makefile 教程及详细示例解析(跟我一起写 Makefile)
在Makefile中,自动化变量是一组特殊的变量,它们在执行规则时会自动被设置为相应的值。这些自动化变量可以帮助我们在规则中引用与当前规则相关的文件名、目录名等信息。以下是常用的自动化变量:- $@:代表当前规则的目标文件名。- $
-
make: *** 没有指明目标并且找不到 makefile。 停止
在使用vscode编译Makefile文件,出现题目上的错误,以为是在修改ubuntu内核版本时修改了什么环境导致。找了很久才发现,vscode加载的文件夹地址是~/linux/IMX6ULL/Board_Drivers/14_printf并且需要执行的Makefile文件也在这个地址下,而在最初进入vscode出现的终端地址是~/linux/IMX6ULL/Board_Drivers所以才会出现错误。所以在使用make命令是一定要确保Makefile地址正确。重新开启终端,执行make clean。
-
GCC/G++常见链接错误
链接错误的直接表现就是:****符号未定义。几种常见的链接错误如下:缺少*.o文件 ---- 对策:将相应的文件加入Makefile或命令行*.o文件未更新 ---- 对策:删除旧*.o文件重新编译或者依赖于最新的depend来编译(增删文件时确保make depend)。缺少相应的库文件 ---- 对策:将相应的文件加入Makefile或命令行
-
Lammps的安装
Lammps版本升级较快,各种版本安装过程大致相同,可根据不同版本微调。 一、lammps非并行安装(单机版) 1、解压lammps数据包: gunzip lamps.tar.gz tar xvf lamps.tar 为方便可以将解压得到的lammps重命名 mv lammps-1May10 lmp 2、cd ~/lmp/src/STUBS
-
makefile的规则
makefile_z规则
-
makefile错误、找不到头文件、交叉编译
一、*** No rule to make target 'disp_manager.h', needed by 'disp_manager.o'. Stop. 错误原因: 1、编译依赖错误, 2、引用之前使用过得makefile 当make clean 时 一些依赖并没有全部清除 解决: 使用 make distclean 彻底清除** 二、fatal error: ft2build.h: No such file or directory 描述:已经把编译好的库 头文件都放到交叉编译
-
linux make 无法生成 .o gch,linux下的makefile编程
程序5:main.c#include"mytool1.h"#include"mytool2.h"int main(void){mytool1_print("hello 1");mytool2_print("hello 2");return 0;}现在我们要运行main.c来打印输出This is mytool1 print hello 1This is mytool1 print hello 2如...
-
makefile 生成.o_四步教你从零开始写Makefile
1. 前言通过之前章节的学习,我们对Makefile有个基础的认识,现在开始自己动手写Makefile。目前网络上有不少可以自动生成Makefile的工具,但很多项目其实没必要那么复杂,完全可以自己动手写出来。而且对于初学者来说,自己动手写一遍Makefile可以顶看十遍高手写的Makefile,也可以加深对Makefile的理解,将来公司的Makefile有需要修改的时候自己就可以动手搞定,不需...
-
linux make 无法生成 .o gch,Linux下make命令
Linux 下 make命令是系统管理员和程序员用的最频繁的命令之一。管理员用它通过命令行来编译和安装很多开源的工具,程序员用它来管理他们大型复杂的项目编译问题。本文我们将用一些实例来讨论make 命令背后的工作机制。Make如何工作的对于不知道背后机理的人来说,make命令像命令行参数一样接收目标。这些目标通常存放在以 “Makefile”来命名的特殊文件中,同时文件也包含与目标相对应的操作。更...
-
Linux学习笔记——例说makefile 头文件查找路径
0.前言 从学习C语言开始就慢慢开始接触makefile,查阅了很多的makefile的资料但总感觉没有真正掌握makefile,如果自己动手写一个makefile总觉得非常吃力。所以特意借助博客总结makefile的相关知识,通过例子说明makefile的具体用法。 例说makefile大致分为4个部分 1.只有单个C文件 2.含有多个C文件
-
Make的使用方法
Make 程序最初设计是为了维护C程序文件防止不必要的重新编译。在使用命令行编译器的时候,修改了一个工程中的头文件,如何确保包含这个头文件的所有文件都得到编译?现在10机的版本生成是使用批处理程序,编译那些文件依赖于程序的维护者,在模块之间相互引用头文件的情况下,要将所有需要重新编译的文件找出来是一件痛苦的事情;在找到这些文件之后,修改批处理进行编译。实际上这些工作可以让make程序来自动完成,