SOFLAGS = -O2 -fPIC -shared TARGET = ./libSDK.so #这里递归遍历3级子目录 DIRS := $(shell find . -maxdepth 3 -type d) #这里循环遍历目录的cpp文件 FILES = $(foreach dir,$(DIRS),$(wildcard $(dir)/*.cpp)) #定义宏 DEF = -DLINUX -DENABLE_EPOLL #替换文件后缀 ,也可以写成 OBJS...
files := $(foreach n,$(names),$(n).o) 上面的例子中,$(name)中的单词会被挨个取出,并存到变量“n”中,“$(n).o”每次根据“$(n)”计算出一个值,这些值以空格分隔,最后作为 foreach 函数的返回,所以, $(files)的值是“a.o b.o c.o d.o”。 注意,foreach 中的<var>参数是一个临时的...
foreach —— 循环函数 将 中的参数逐一取出放到 变量中,然后再执行 中的表达式。 :::danger 循环执行中:每执行一次循环都会返回一个字符串,foreach循环会将返回的字符串汇总,不同字符串通过空格分隔 循环执行结束:当整个循环结束的时候,返回汇总的字符串(不同字串以空格分隔) ::: $(foreach <var>,<list>,...
先来看一个Makefile文件,通过 foreach 和 patsubst 方法和 ^、$< 变量来构建遍历的编译 CROSS=CC=$(CROSS)gccCXX=$(CROSS)g++DEBUG=-gCFLAGS=$(DEBUG)-Wall-c-fPICMV=mv-fRM=rm-rfLN=ln-sfTARGET=libhello.soTOP_PATH=$(shell pwd)INC_PATH=$(TOP_PATH)/includeSRC_PATH=$(TOP_PATH)SRC_PATH+=$...
foreach函数和别的函数非常的不一样。因为这个函数是用来做循环用的,Makefile中的foreach函数几乎是仿照于Unix标准Shell(/bin/sh)中的for语句,或是C-Shell(/bin/csh)中的foreach语句而构建的。它的语法是: $(foreach <var>,<list>,<text> )
foreach函数和别的函数非常的不一样。因为这个函数是用来做循环用的,Makefile中的foreach函数几乎是仿照于Unix标准Shell(/bin/sh)中的for语句,或是C-Shell(/bin/csh)中的foreach语句而构建的。它的语法是: $(foreach <var>,<list>,<text>) 这个函数的意思是,把参数中的单词逐一取出放到参数所指定的变量中...
一、foreach $(foreach VAR,LIST,TEXT),返回值:空格分割的多次表达式“ TEXT”的计算的结果。 如果需要(存在变量或者函数的引用),首先展开变量“ VAR”和“ LIST”的引用;而表达式“ TEXT”中的变量引用不展开。 执行时把“ LIST”中使用空格分割的单词依次取出赋值给变量“ VAR”,然后执行“ TEXT”表达式。重...
# 查找所有非排除目录的目录SRC_DIRS :=$(shellfind . -type d $(foreachdir,$(EXCLUDE_DIRS),-not -path "$(dir)*")) # 构建目标:生成代码generate:@for dir in$(SRC_DIRS); do \echo"Generating code in directory: $$dir"; \(cd $$dir &&$(GO...
FILES= $(foreachdir, $(DIRS), $(wildcard $(dir)/*.cpp)) ### # modules ### modules = MODULES_PATH = $(foreach m, $(modules), $(MOD_PATH)/$(m)) ### # srcs #
#动态库需要 -fPIC -shared SOFLAGS = -O2 -fPIC -shared TARGET = ./libSDK.so #这里递归遍历3级子目录 DIRS := $(shell find . -maxdepth 3 -type d) #这里循环遍历目录的cpp文件 FILES = $(foreach dir,$(DIRS),$(wildcard $(dir)/*.cpp)) ...