如何在Makefile中创建动态和静态库。我有C代码。在inc文件夹中包含所有包含的头文件以及此文件夹外的C文件。我想创建.a和.so库。我如何包含通配符来说明所有的文件将被执行。 我试过这种方式。如何在Makefile中创建静态和动态库?
CFLAGS := -fPIC -O3 -g -Wall -Werror
CC := gcc
MAJOR := 0
MINOR := 1
NAME := foo
VERSION := $(MAJOR).$(MINOR)
lib: lib$(NAME).so
lib$(NAME).so.$(VERSION): $(NAME).o
$(CC) -shared -Wl,-soname,lib$(NAME).so.$(MAJOR) $^ -o $(wildcard %.c)
clean:
$(RM) *.o *.so*
发布的makefile只会生成一个.so库。您需要添加第一个目标,类似于:'all:lib $(NAME).so。$(VERSION)lib $(NAME).a。$(VERSION)'然后编写一个额外的配方来生成静态库(lib $(NAME).a。$(VERSION) – user3629249