Makefile 파일 간단 한 예제 1: 테스트 검증 애플 릿 관리
make 와 Makefile 파일 은 프로젝트 구축 의 효과 적 인 도구 로 완전한 프로젝트 개발 에 있어 서 기본적으로 자동 구축 을 실현 하여 효율 과 신뢰성 을 높 인 다.그래서 여기 서도 make, Makefile 도 구 를 빌려 Makefile 의 규칙 을 충분히 활용 하여 테스트 검증 을 관리 하 는 애플 릿 을 도 와 줍 니 다.다음은 이 Makefile 파일 입 니 다:
4. 567913. Makefile 에서 규칙 을 충분히 이용 하면 원본 파일 이름 을 수 동 으로 입력 하 는 번 거 로 움 과 유 지 를 피 할 수 있 고 확장 성 을 실현 할 수 있 습 니 다. 나중에 추 가 된 테스트 프로그램 은 Makefile 을 수정 하지 않 아 도 컴 파일 관 리 를 할 수 있 습 니 다.대상 파일 의 목표 가 필요 없다 고 생각 되면 c. o 규칙 을 제거 하고 기본 컴 파일 규칙 을 사용 할 수 있 습 니 다.
테스트 프로그램 을 컴 파일 해 야 할 때 셸 이 Makefile 디 렉 터 리 에 make 명령 을 사용 한 다음 tab 키 를 누 르 면 실행 가능 한 목표 가 자동 으로 나타 나 고 자동 으로 보완 할 수 있 으 며 목 표를 기억 할 필요 가 없습니다.
makefile 의 자동화 변수:
CC=gcc
LIB_PATH+=$(HOME)/opt/lib # ,
CFLAGS+= -O2 -Wall -D_GNU_SOURCE_ -g
LDFLAGS+= -L$(LIB_PATH) -lzlog -lpthread
INC_FLAGS+= -I.
all : $(EXES) #
$(EXES) : %:%.o # , , , make
$(CC) -o $@ $^ $(LDFLAGS) -Wl,-rpath=$(LIB_PATH)
.c.o : # , , make
$(CC) $(CFLAGS) -o $@ -c $< $(INC_FLAGS)
다음은 같은 규칙 으로 한 사람의 프로젝트 를 관리 하 는 Makefile 파일 입 니 다. 똑 같이 확장 이 잘 되 어 있 습 니 다. 파일 을 추가 할 때 Makefile 을 수정 할 필요 가 없습니다.
1、$@:
2、$<: , (%) , ,
3、$^: , , ,
4、$+: $^ , 。
위의 Makefile 이 clean 을 실행 할 때 아래 의 오류 알림 이 나타 납 니 다. 이것 은 moc * 가 이미 있 기 때 문 입 니 다.cpp 원본 파일 이 존재 하고 SRCS + = $(MOCS) 를 실행 하면 moc * 가 다시 생 성 됩 니 다.cpp 파일 이 므 로 moc * 를 반복 합 니 다.o 의 목표.이것 은 프로젝트 컴 파일 에 영향 을 주지 않 습 니 다.
CC=arm-hismall-linux-g++
CXXFLAGS=-pipe -fno-exceptions -fno-rtti -Wall -O2 -DQWS
QT_DIR= $(HOME)/qt/qt-hisi-2.2.0
LDFLAGS= -lqte -L$(QT_DIR)/install/lib -Wl,-rpath-link=$(QT_DIR)/build/lib
INCFLAGS= -I$(QT_DIR)/qtopia-free-2.2.0/qt2/include
HEADERS:= $(wildcard *.h) #
MOCS:= $(HEADERS:%.h=moc_%.cpp) # moc , moc
SRCS:= $(wildcard *.cpp) #
SRCS+= $(MOCS) # moc
OBJS:= $(SRCS:%.cpp=%.o) #
TARGET = show
all: $(TARGET)
$(TARGET): $(OBJS)
$(CC) $^ -o $@ $(LDFLAGS)
$(MOCS): moc_%.cpp:%.h
moc $^ -o $@
$(OBJS): %.o:%.cpp # ,
$(CC) $(CXXFLAGS) -c $^ -o $@ $(INCFLAGS)
clean:
@echo $(SRCS)
@echo $(OBJS)
rm -f moc_*.cpp *.o $(TARGET)
.PHONY: all clean
PS: 상기 목표 의 중복 을 해결 하 는 방법
SRCS 변수 에 있 는 중복 moc 원본 파일 만 삭제 하면 됩 니 다. 따라서 Makefile 파일 에서 SRCS 변 수 를 가 져 올 때 조금 만 처리 하고 아래 문 구 를 위의 Makefile 파일 에 SRCS + = $(MOCS) 문 구 를 추가 하면 됩 니 다.
Makefile:23: target `moc_home.o' given more than once in the same rule.
셸 명령 도 구 를 이용 하여 변수 에 있 는 중복 문자열 단 어 를 제거 하 는 것 입 니 다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Windows용 GNU Make에서 PowerShell을 사용하는 방법Windows용 GNU Make를 설치하고 기본 설정으로 실행하면 쉘이 명령 프롬프트(cmd.exe)로 실행됩니다. 어떻게 해서 Windows PowerShell (powershell.exe)로 변경할 수 없는지 조...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.