使文件指向目录中的所有C文件

使文件指向目录中的所有C文件,c,makefile,C,Makefile,我想使用pkg config进行一些共享库设置,在目录中编译任何“.c”文件时将应用这些设置。如何访问make规则中的文件名 例如,如果这些是目录中的文件 foo1.c bar.c foobar.c 如果我运行make foobar,我希望使用pkg config中的选项生成一个对象文件foobar,并链接到共享库。我不想为每个文件显式地编写规则,它应该能够为任何“.c/.h”文件编写规则。我认为这在make中是可能的,但我不确定语法。如果该目录中的任何C文件不依赖于其他文件,您可以编写这样的

我想使用pkg config进行一些共享库设置,在目录中编译任何“.c”文件时将应用这些设置。如何访问make规则中的文件名

例如,如果这些是目录中的文件

foo1.c
bar.c
foobar.c

如果我运行
make foobar
,我希望使用pkg config中的选项生成一个对象文件
foobar
,并链接到共享库。我不想为每个文件显式地编写规则,它应该能够为任何“.c/.h”文件编写规则。我认为这在make中是可能的,但我不确定语法。

如果该目录中的任何C文件不依赖于其他文件,您可以编写这样的makefile:

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

%: %.c
    $(CC) $(LDFLAGS) $(CFLAGS) $(DEFINES) $< -o $@
CC=gcc
LDFLAGS=-l。。。
定义=-D。。。
CFLAGS=-Wall-Werror。。。
%:%c
$(CC)$(LDFLAGS)$(CFLAGS)$(定义)$<-o$@

如果该目录中的任何C文件不依赖于其他文件,您可以编写这样的生成文件:

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

%: %.c
    $(CC) $(LDFLAGS) $(CFLAGS) $(DEFINES) $< -o $@
CC=gcc
LDFLAGS=-l。。。
定义=-D。。。
CFLAGS=-Wall-Werror。。。
%:%c
$(CC)$(LDFLAGS)$(CFLAGS)$(定义)$<-o$@

谢谢,它可以工作,但是通配符“$
$谢谢,它可以工作,但是通配符“$
$