Don*_*ano 3 c executable makefile
我有三个用C编写的文件:
a.c, b.c, d.c
Run Code Online (Sandbox Code Playgroud)
我想使用ONE Makefile从它们生成独立的可执行文件,如下所示:
a.x, b.x d.x.
Run Code Online (Sandbox Code Playgroud)
他们不需要彼此奔跑.它们是完全不同的程序.
我知道,我可以编写一行来编译它们中的每一个,如下所示:
gcc -Wall -Werror a.c -o a.x
gcc -Wall -Werror b.c -o b.x
gcc -Wall -Werror d.c -o d.x
Run Code Online (Sandbox Code Playgroud)
但是我正在寻找一种更简单的解决方案,可以独立于文件数量来实现这一点,因为将来我将拥有很多文件.
我的原件看起来像这样:
CC = gcc
CFLAGS = -g -Wall - Werror -03
%.x:%.c
${CC} {CFLAGS} -o $@ $<
clean:
rm -f *.o
Run Code Online (Sandbox Code Playgroud)
但我不知道,如何自定义它,以便它读取我的每个c文件并从它们中的每一个生成一个x文件.
谢谢
你试过添加吗?
全部:ax bx cx
在makefile前面?
all: a.x b.x c.x
CC = gcc
CFLAGS = -g -Wall - Werror -03
%.x:%.c
${CC} {CFLAGS} -o $@ $<
clean:
rm -f *.o
Run Code Online (Sandbox Code Playgroud)
编辑:要在目录中构建所有.c文件,请尝试
all: $(*.c:.c=.x)
Run Code Online (Sandbox Code Playgroud)
我对Make非常生疏所以这可能不太正确......你应该阅读Make文档.
编辑2:确实这不对......这更有可能奏效:
SRCS = *.c
all: $(SRCS:.c=.x)
Run Code Online (Sandbox Code Playgroud)
要么
SRCS = *.c
PGMS = $(SRCS:.c=.x)
all: $PGMS
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
793 次 |
| 最近记录: |