2012-12-06 196 views
2

所以我有一個GCC命令,我想使用SIMPLE makefile。之前從未在makefile上工作過,並且在參考教程後仍然遇到問題。makefile:搜索子目錄中的文件

所以在終端的命令是

[email protected]:~/link4/G2/G2 module/src$ gcc -I.src/L4COMM -I.src/L4SERIAL -I.src/L4SYSTEM -I.src/main.c -I.src/L4COMM/l4comm.c -I.src/L4SERIAL/l4serial.c ./src/bypass.c ./src/input.c 

這工作得很好,但是當我創建一個makefile,我無法使搜索文件「l4comm.c和l4​​serial.c」,這是分別在src/L4COMM和src/L4SERIAL中。

這是我的makefile樣子:

CC =gcc 
INCLUDE = -I/src/L4COMM \ 
      -I/src/L4SERIAL 
VPATH = -I/src/L4COMM \ 
     -I/src/L4SERIAL 

cfiles := $(patsubst %.c, %.o, $(wildcard *.c)) 
hfiles := $(patsubst %.h, %.o, $(wildcard *.h)) 

g2make: $(cfiles) 
     $(CC) $(INCLUDE) -o main.c l4comm.c l4serial.c bypass.c input.c 
  1. 希望Makefile查找文件的子目錄
  2. 正如我用了「cfiles/hfiles」來檢查的變化,我想通配符來檢查子目錄中的文件。

幫助讚賞! :)

+0

如果只有兩個文件發現,你知道他們在哪裏,你真的需要一個完整強大的搜索功能? – Beta

+0

嘗試'VPATH = ./src/L4COMM。/ src/L4SERIAL' – zakkak

+0

自動將任何源文件包含在樹中的構建中? **啊!!!**。在make中明確表達。 (儘管你可以用'cfiles:= $(shell find。-type f -name'* .c')'來做你想要的。) – bobbogo

回答

-1

您可以使用此g2make:

$(CC) $(INCLUDE) -o .src/main.c ./src/L4COMM/l4comm.c ./src/L4SERIAL/l4serial.c ./src/bypass.c ./src/input.c