❶ 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/