Makefile은 프로그램 컴파일을 자동화하기 위해 make 도구에서 사용하는 파일입니다. 효과적인 Makefile을 작성하기 위한 표준 규칙과 모범 사례는 다음과 같습니다.
target: prerequisites command
기본 규칙: Makefile의 첫 번째 대상은 기본적으로 빌드되는 대상입니다.
소스 파일 컴파일:
CC = gcc CFLAGS = -Wall -g SOURCES = main.c utils.c OBJECTS = $(SOURCES:.c=.o) TARGET = mon_programme $(TARGET): $(OBJECTS) $(CC) -o $@ $^ %.o: %.c $(CC) $(CFLAGS) -c $< -o $@
.PHONY: clean clean: rm -f $(OBJECTS) $(TARGET)
CC = gcc CFLAGS = -Wall
종속성 관리: 암시적 규칙과 패턴을 사용하여 반복을 줄입니다.
자동 종속성: .o 파일에 대한 종속성을 자동으로 생성할 수 있습니다.
-include $(OBJECTS:.o=.d)
전체 Makefile 예는 다음과 같습니다.
# Variables CC = gcc CFLAGS = -Wall -g SOURCES = main.c utils.c OBJECTS = $(SOURCES:.c=.o) TARGET = mon_programme # Règle par défaut all: $(TARGET) # Lien de l'exécutable # $@ -> $(TARGET) # $^ -> $(OBJECTS) $(TARGET): $(OBJECTS) $(CC) -o $@ $^ # Compilation des fichiers .c en .o # $< -> Premier element des pr %.o: %.c $(CC) $(CFLAGS) -c $< -o $@ # Déclaration des cibles phony .PHONY: all clean fclean re # Nettoyage des fichiers objets clean: rm -f $(OBJECTS) # Nettoyage complet (fichiers objets et exécutable) fclean: clean rm -f $(TARGET) # Refaire la compilation re: fclean all
탭으로 들여쓰기: 규칙의 명령은 공백이 아닌 탭으로 들여쓰기해야 합니다.
주석 코드: 주석을 사용하여 Makefile의 섹션을 설명합니다.
파일 그룹화: 프로젝트에 여러 파일이 포함된 경우 해당 파일을 하위 디렉터리로 정리하고 변수를 사용하여 경로를 관리하세요.
암시적 규칙 사용: 공통 규칙을 다시 작성하지 않도록 make에 내장된 규칙을 활용하세요.
충돌 방지: 대상과 동일한 이름을 가진 파일이 존재하는 경우 make는 대상이 최신이라고 생각하고 관련 명령을 실행하지 않습니다. .PHONY는 이를 방지합니다.
향상된 성능:위조 대상은 항상 "해야 할 일"로 간주되어 관련 명령의 실행 속도를 향상시킬 수 있습니다.
효율성: %.o:%c를 사용하면 필요한 것만 다시 컴파일하는 최적화의 이점을 얻을 수 있습니다.
실용성: 대규모 프로젝트의 경우 %.o:%c가 훨씬 더 적합합니다.
잘 구성된 Makefile은 프로젝트 관리를 더 쉽게 만들고 컴파일 오류를 방지합니다. 이러한 규칙과 모범 사례를 따르면 효율적이고 유지 관리가 가능한 Makefile을 만들 수 있습니다.
위 내용은 Makefile 이해(C 언어의 예)의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!