makefile内容如下:(makefile没有什么实际意义,仅仅为了演示命令前提目标的用法) TEST_DIR=dirTest all:main.o //规则1 @echo "this is all" main.o : main.c func.o | ${TEST_DIR} //规则2 @echo "gcc process" gcc -c main.c -o $@ func.o : func.c //规则3 @echo "func gcc process" ...
1.(dirNAMES…)函数名称:取目录函数—dir。函数功能:从文件名序列“NAMES…”中取出各个文件名目录部分。文件名的目录部分就是包含在文件名中的最后一个斜线(“/”)(包括斜线)之前的部分。返回值:空格分割的文件名序列“NAMES…”中每一个文件的目录部分。函数说明:如果文件名中没有斜线,认为此文件为当前目录(“...
指定需要执行的makefile。*:-I <dir>,--include-dir=<dir>。 指定一个被包含makefile的搜索目标。可以使用多个“-I”参数来指定多个目录。*:-p,--print-data-base。 输出makefile中的所有数据,包括所有的规则和变量。这个参数会让一个简单的makefile都会输出一堆信息。如果你只是想输出信息而不想执行makefile...
Makefile中内置了一些常用的命令,有字符串处理函数subst、patsubst、strip、findstring、filter、filter-out、sort、word、wordlist、words、firstword、lastword;文件名处理函数dir、notdir、suffix、basename、addsuffix、addprefix、join、wildcard、realpath、abspath;条件处理函数if;循环处理函数foreach等。下面介绍一些常用的...
DIR = src compile: $(CC) -c $(DIR)/main.c 这里变量DIR和CC在命令中被引用,用于指定编译的源文件路径和编译器。 三、预定义变量 Makefile 中有一些预定义变量,它们具有特定的含义和用途: $@:表示目标文件。 $<:表示第一个依赖文件。 $^:表示所有依赖文件。
-s:在执行命令时不显示命令 -w:如果执行make在执行过程中改变目录,打印当前目录名; 例子: ##指定编译文件custom.mk为Makefile进行编译; make -f custom.mk ##指定编译/home/dir/路径下的makefile; make -C /home/dir/ 4. Makefile文件中类型和使用说明: ...
这一些列的动作,都可以用"OBJS = **(patsubst %.c,{TMP_DIR}/%.o,(notdir **{SRCS}))"这个命令来实现。"nodir"就是去掉文件夹路径,"patsubst"是替换指令,这里是把所有.c文件替换为.o文件,并加上路径。 最后就是根据.o文件定义.d依赖文件,由于.d文件和.o文件都会放在临时文件夹中,所以只要简单的...
在上面的示例中,通过定义变量OUTPUT_DIR来指定输出目录为build。在编译规则中,使用mkdir -p $(OUTPUT_DIR)命令创建输出目录(如果该目录不存在)。在目标文件规则中,使用-o $@参数来指定输出文件的路径为$(OUTPUT_DIR)/target。在清理规则中,使用rm -rf $(OUTPUT_DIR)命令删除输出目录。 可以根据实际情况修改输出...
TOPDIR:=$(shell pwd) 这是个立即变量,TOPDIR 等于 shell 命令 pwd 的结果。 E. 在 Makefile 中怎么放置第 1 个目标: 执行 make 命令时如果不指定目标,那么它默认是去生成第 1 个目标。 所以“第 1 个目标”,位置很重要。有时候不太方便把第 1 个目标完整地放在文件前面,这时可以在文件的前面直接放置...
我们可以把这个内容保存在文件为“Makefile”或“makefile”的文件中,然后在该目录下直接输入命令“make”就可以生成执行文件sunq。如果要删除执行文件和所有的中间目标文件,那么,只要简单地执行一下“make clean”就可以了。 在这个makefile中,==目标文件(target)包含:执行文件sunq和中间目标文件(*.o),依赖文件(pre...