makefile
文章平均质量分 52
barbyQAQ
这个作者很帅,什么都没留下…
展开
-
shell脚本自动生成makefile
源代码#!/bin/bashRED="\033[0;31m"GREEN="\033[0;32m"NONE="\033[0m"if [ $# != 1 ]then printf "${RED}Usage: automake <target.c>\n${NONE}" exit 0fimakefile="makefile"target=$(echo $1|sed 's/.c$//g')allCFiles=$(ls *.c)needCFiles="$(gcc -MM $原创 2022-04-04 21:56:59 · 1263 阅读 · 0 评论 -
3.wildcard
如果将工作目录下所有的.o 文件删除,重新执行 make 将会得到一个类似于没有创建*.o 文件的规则 的错误提示。这当然不是我们所期望的结果(可能在出现这个错误时会令你感到万分迷惑!)。为了达到我们的初衷,在对变量进行定义的时需要使用一些高级的技巧,包括使用wildcard函数(变量定义为objects=$(wildcard *.o))和实现字符串的置换。如何实现字符串的置换,后续将进行详细地讨论。函数wildcard之前提到过,在规则中,通配符会被自动展开。但在变量的定义和函数引用时,通配符将失效。原创 2022-03-06 13:52:40 · 165 阅读 · 0 评论 -
3.makefile的命名
参考资料:徐海兵.GNU make中文手册默认的情况下,make 会在工作目录(执行 make 的目录)下按照文件名顺序寻找makefile 文件读取并执行,查找的文件名顺序为:GNUmakefile、makefile、Makefile。通常应该使用makefile或者Makefile作为一个 makefile 的文件名(我们推荐使用Makefile,首字母大写而比较显著,一般在一个目录中和当前目录的一些重要 文 件 ( README,Chagelist 等 ) 靠 近 , 在 寻 找.原创 2022-03-06 13:30:55 · 1329 阅读 · 0 评论 -
2.自动推导、.PHONY
自动推导规则在用make编译.c源文件时,编译.c源文件规则的命令可以不用明确给出。只给出需要重建的目标文件名(一个.o文件),make会自动为它寻找合适的依赖文件(对应的.c文件。对应指后缀名之外其余都相同的文件名。)。原因因为make本身存在默认的规则,能够自动完成对.c文件的编译,并生成对应的.o文件。它执行命令cc -c来编译.c``文件。示例objects = main.o kbd.o command.o display.o \ insert.o search.o files.o原创 2022-03-06 13:25:23 · 187 阅读 · 0 评论 -
1.基本概念与规则
常用术语通用源文件后缀名: *.c以及*.h。就是源代码文件。目标文件后缀名:*.o。编译出的中间文件,需要链接成可执行文件。可执行文件后缀名:不限制(Linux下)。可以看作是最终目标,链接目标文件而成。makefile专用生成目标(target)需要依赖文件。目标(文件)后缀名:*.o以及可执行文件。目标文件是中间目标,可执行文件是特殊的”目标文件“,是终极目标。依赖文件-后缀名: *.c、*.h、*.o。生成目标所需要的依赖文件。原创 2022-03-06 12:13:11 · 159 阅读 · 0 评论