如何在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