2013-05-20 59 views
1

我想使用pkg-config進行一些共享庫設置,這將在目錄中編譯任何「.c」文件時應用。如何在make規則中訪問文件的名稱?使文件定位到一個目錄中的所有C文件

例如,如果這些目錄中的文件

foo1.c 
bar.c 
foobar.c 

如果我跑make foobar,我想生成並鏈接到使用pkg配置選項的共享庫的目標文件foobar。我不想爲每個文件明確寫一條規則,它應該可以爲任何「.c/.h」文件執行此操作。我認爲這是可能的,但我不確定語法。

回答

1

如果任何在該目錄中的C-文件不依賴於別人,你可以寫這樣的Makefile:

CC = gcc 
LDFLAGS = -l... 
DEFINES = -D... 
CFLAGS = -Wall -Werror ... 

%: %.c 
    $(CC) $(LDFLAGS) $(CFLAGS) $(DEFINES) $< -o [email protected] 
+0

謝謝,它的工作原理但什麼做通配符「$ <」和「$ @ 「代表? –

+0

'$ <'是文件名('%.c'),'$ @'是目標名稱。 –

相關問題