Makefile에 동적 및 정적 라이브러리를 만드는 방법. 나는 C 코드를 가지고있다. inc 폴더에는 헤더 파일이 모두 포함되어 있으며이 폴더 외부에는 C 파일이 포함되어 있습니다. .a 및 .so 라이브러리를 만들고 싶습니다. 모든 파일이 실행될 것임을 나타내는 와일드 카드를 어떻게 포함합니까? 나는이 방법을 시도했다. (- 나는 보통 ruv
를 사용 ar
및 ru
또는 그 부근)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*
게시 된 메이크 파일은 .so 라이브러리 만 생성합니다. 'all : lib $ (NAME) .so. $ (VERSION) lib $ (NAME) .a. $ (VERSION)'와 비슷한 첫 번째 대상을 추가해야합니다. 그런 다음 추가 레서피를 작성하여 정적 라이브러리 (lib $ (NAME) .a. $ (VERSION) – user3629249