❶ makefile怎么编绎不同文件夹的.c和.h
有两种方法:一是你修改系统头文件的文件夹路径和你的源文件夹路径。二是你将两个文件复制到系统指定的文件夹中即可。
你用的是Turbo C吗?如果是,见下图。如果不是,可以参考着去做。
第四行是源文件所在目录,你可以根据实际情况修改。
❷ 用makefile怎么删除不同文件里面的所有.o文件
SUBDIR = $(shell ls ./ -R | grep /)
SUBDIRS = $(subst :,/,$(SUBDIR))
SOURCE = $(foreach dir, $(SUBDIRS),$(wildcard $(dir)*.o))
clean:
rm -rf $(SOURCE)
测试可用,删除当前目录下所有的.o文件,请采纳
❸ 如何在makefile中指定头文件目录
1、首先在目录HelloMakefile下,创建测试文件main.c。
❹ Makefile怎么排除某两三个文件不编译
phony 目标可以有依赖关系。当一个目录中有多个程序,将其放在一个makefile 中会更方便。因为缺省目标是makefile 中的第一个目标,通常将这个phony 目标叫做"all",其依赖文件为各个程序:
all : prog1 prog2 prog3
.PHONY : all
prog1 : prog1.o utils.o
cc -o prog1 prog1.o utils.o
prog2 : prog2.o
cc -o prog2 prog2.o
prog3 : prog3.o sort.o utils.o
cc -o prog3 prog3.o sort.o utils.o
❺ 在linux下如何执行另一个文件夹下的makefile
可以在主Makefile文件中直接写
all:
cd /Path/To/src1 && make
cd /Path/To/src2 && make
......
注意命令直接要使用 “&&”符号连接,尤其是在声明一些环境变量的时候,例如
export GNUMAKE=/bin/gmake && cd /Path/To/src && make
❻ makefile怎么遍历文件夹文件
可以定义一个伪目标,然后在目标后面使用shell命令,遍历所有文件目录的C文件,并保存在SRCS遍历中。
all:
fordirin$(ALL_DIRS);
do
SRCS+=$(wildcard$$dir/*.c);
done
更多的细节,可以网络:Makefile工程实践视频
❼ 一个文件夹里有两个makefile文件,一个makefile1和makefile,make执行哪个
makefile 被默认执行。
要执行makefile1,需要用下面这个命令
make -f makefile1
❽ Makefile中通配符*与%的区别是什么
这两个通配符的使用地方不一样 * 是直接使用在 makefile 的命令里面的,而 % 是使用在 vpath 后面的如 vpath %.h ../headers
❾ makefile中怎么通配一个文件夹下的所有源文件急!满意追加分!
据我所知 自己写 就如你说的“只能一个一个目录的指定如:$(wildcard src/*.cpp) ?”
发个列子吧 胆小精悍:
PROGRAM := VSIM
SOURCES := $(wildcard ./*.c)
SOURCES += $(wildcard ./src/*.c)
OBJS := $(patsubst %.c,%.o,$(SOURCES))
CC := gcc
CFLAGS := -ggdb -Wall -DBUILD_TIME="\"`date`\"" -DDEBUG_
INCLUDE := -I ./simo/inc -I ./simo/inc/platform -I ./simo/src/decode_encode/RSA -I ./simo/src/json/json-c-0.9 -I ./simo/src/db_interface/ram_db
LIB := -lpthread -ldl
.PHONY: clean install
$(PROGRAM): $(OBJS)
$(CC) -o $@ $^ $(LIB)
%.o: %.c
$(CC) -o $@ -c $< $(CFLAGS) $(INCLUDE)
clean:
rm $(OBJS) $(PROGRAM) -f
install: $(PROGRAM)
cp $(PROGRAM) ./bin/