내가 differnt 한 경로와 각 C 파일의 무리, 그래서 내가 각 C에서 오브젝트 파일을 구축하고자C 파일이 다른 경로
SRC=/path1/path2/file1.c file2.c /usr/joe/files/file3.c
같은 것을 가지고있을 때 객체 파일을 작성하는 규칙을 작성하는 방법 빌드 디렉토리에 파일을, 그래서 내가 한 : 이것은 잘 작동하고 내가 가진
SRCBASE=$(notdir $(SRC))
OBJS= $(addprefix $(OBJDIR)/,$(SRCBASE:.c=.o))
OBJS 구축입니다/file1.o/file3.o
내 질문 file2.o의 구축/IS 구축 방법 오브젝트를 빌드하기위한 암시적인 규칙을 작성하십시오. 파일, 내가하려고 노력 :
build/%.o : %.c
gcc ....
을하지만이 규칙은 전체 경로로 파일을 캐치하지 않았기 때문에, 일을 지금 것 같다. 나는 GNU make를 보려고했지만 거기에서 답을 찾지 못했습니다.
감사합니다.
'make '와 같이 보통 (슬픈) 방법은 디렉토리 당 하나의'Makefile'을 갖는 것입니다. 어떤 도구 ('autotools','cmake')는 그 목적을 위해'Makefile'-s를 생성하고 있습니다. http://omake.metaprl.org/와 같은 더 나은 빌더를 사용할 수 있습니다. –
패턴 규칙이있는 마지막 스 니펫에는 어떤 문제가 있습니까? 그것은 잘 작동합니다. 질문에 조리법을 포함시킬 수 있습니까? –
또한,'OBJS'를 만드는 방법이 잘못된 것처럼 보입니다. 'SRC'의'notdir'을 얻지 말아야합니다. 접미어를 바꾸고 객체를 디렉토리에 추가하십시오 :'OBJS : = $ (SRC : % .c = $ (OBJDIR)/% .O)' –