안녕하세요 저는 주 파일에 링크 된 libnsd.so (nsd.c, nsd.h, nd.c, nd.h로 구성) 공유 라이브러리를 가지고 있습니다. 제 질문은 변경된 소스 파일 만 다시 컴파일 할 수 있도록 makefile을 작성하는 방법입니다. 나는 이것에 관해서 약간의 주제를 읽었지만, 다소 혼란 스러웠다. 나는 초보 프로그래머이다. 내 메이크 지금까지 코드 :C Makefile - 변경된 파일 만 다시 컴파일하십시오.
CC=gcc
all : lib alll
alll : main.c
$(CC) main.c -o main -L. libnsd.so
lib : nsd.c nsd.h nd.c nd.h
$(CC) -c -fPIC nsd.c -o nsd.o
$(CC) -c -fPIC nd.c -o nd.o
$(CC) -shared -Wl,-soname,libnsd.so -o libnsd.so nsd.o nd.o
clean:
rm main libnsd.so nd.o nsd.o
대상을 다시 컴파일해야하는 출력 파일과 동일한 이름으로 지정해야합니다. –
(대상과 동일한 이름의 파일을 만들지 않는 대상 호출 명령이 없습니다.) –
당신은 nsd.o, nd.o, libnsd.so, main을 개별 타겟으로 가지고 있습니다. –