gpt4 book ai didi

c - 如何扩展makefile来编写库?

转载 作者:行者123 更新时间:2023-11-30 14:22:21 25 4
gpt4 key购买 nike

我有一个 makefile,它可以完成我想要的编译任务,但我希望它也可以创建一个库,而不仅仅是目标文件。

CC=gcc
CFLAGS=-g -Wall
DEPS = tree.h
OBJ = main.o tree.o

%.o: %.c $(DEPS)
$(CC) -c -o $@ $< $(CFLAGS)

tree: $(OBJ)
$(CC) -o $@ $^ $(CFLAGS)

clean:
rm -f *.o tree

现在我希望 makefile 是这样的:

gcc -Wall -g -c tree.c
ar -r libtree.a tree.o
gcc main.c -o main -ltree -L.
./main

我必须在现有的 makefile 中添加什么?

最佳答案

这应该可以满足您的要求:

%.o: %.c $(DEPS)
$(CC) -c -o $@ $< $(CFLAGS)

lib%.a: %.o
ar -r $@ $^

main: $(OBJ) $(DEPS:%.h=lib%.a)
$(CC) -o $@ $^ $(CFLAGS) $(DEPS:%.h=-l%) -L.

请注意,这仅适用于 GNU Make(特别是 $(DEPS:%.h=lib%.a) 中的 % 是 GNU 特定的扩展名)。

关于c - 如何扩展makefile来编写库?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13792036/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com