저는 makefile을 사용하는 초보자입니다. 두 개의 다른 디렉토리 (커널과 드라이버라고도 함)의 입력을 받아들이는 gcc 용 makefile을 작성하려고합니다. 와일드 카드를 사용하는 다른 디렉토리 (tmp라고 함).Makefile 출력 디렉토리
나는 입력 파일의 이름과 출력 파일
C_SOURCES = $(wildcard $(KERNEL_DIR)/*.c $(DRIVERS_DIR)/*.c)
#Creating a list for object files names
C_OBJ = $(C_SOURCES:.c=.o)
나는 다음과 같은 규칙
%.o: %.c $(CC) $(CFLAGS) -c $< -o [email protected]
을 사용하고 있습니다를 얻기 위해이 코드를 작성한하지만 난 출력 개체를 얻을 수 없다 파일을 원하는 디렉토리에 저장하십시오. 파일
방법 규칙을 수정해야합니까? 다음 문자를 사용합니다. '% .o : % .c \t $ (CC) $ (CFLAGS) -c $ <-o $ @' –
@PatrickJane, 그게 더 어렵습니다. 단일 출력 디렉토리 만 필요하기 때문에 힘들 수 있습니다. 나는 그렇게하지 말고,'tmp'에서 입력 디렉토리 구조를 미러하는 것을 추천합니다 - 그러면 각'.o' 파일을'.c' 파일에 1 : 1로 매핑 시켜서 당신의 삶을 만드십시오. 더 쉽습니다. –