c++ makefile 예제

나는 프리드 머드의 대답을 사용했다. 나는 잠시 동안 이것을 들여다 보았고, 시작하는 좋은 방법인 것 같다. 이 솔루션에는 컴파일러 플래그를 추가하는 잘 정의된 메서드도 있습니다. 나는 그것이 내 환경, 우분투와 g ++에서 작동하도록 변경했기 때문에 다시 대답했다. 더 많은 작업 예제는 때로는 최고의 교사입니다. makefile의 탭은 블로그 게시 소프트웨어에 의해 공백으로 변환되었습니다. 메이크 파일 예제 작성을 사용하여 간단한 C (또는 C ++) 메이크 파일 예제 더 고급 C 메이크 파일 예제 간단한 자바 메이크 파일 (makedepend 및 고급 확인 구문을 사용하여) 당신은 사용하고 당신이 원하는 그러나이러한 Makefile 예제를 배포 할 수 있습니다. 명시적 라이선스가 필요한 경우: https://gist.github.com/jvranish/ae92266fa3039a5e5e8dc4cbc265f225 사용 하려면 확인 만들기 확인 확인 실행 파일을 빌드하기 위한 규칙을 나열 하는 파일 `Makefile` 또는 `makefile`. 새 모듈이 프로그램에 추가되는 경우를 제외하고 는 Makefile을 업데이트하여 기존 규칙에 새 모듈 종속성을 추가하고 새 모듈을 빌드하기 위해 새 규칙을 추가하려면 한 번만 수행해야 합니다. 프로그램 파일을 편집 한 후, 확인을 입력하여 실행 파일을 다시 : % 는 Makefile의 특정 대상을 입력하여 실행할 수 있습니다 : % make_label 예를 들어, 아래의 예제 makefile에서 rm 명령을 실행하려면 다음의 확인 파일 만들기를 확인합니다. Makefile은 일반적으로 특정 대상을 빌드하거나 대상과 연결된 명령 집합을 실행하기 위해 대상 항목 집합(일반적으로 C 및 C++, Java의 .class 파일)을 실행하기 위한 대상 항목 집합으로 시작합니다.

레이블. 다음은 일반적인 대상 항목 양식입니다: # 코멘트 # (참고 : 명령줄의 작동하도록 하는 데 필요합니다) 대상: dependency1 dependency2 … 예를 들어 명령: # # 대상 항목 프로그램 및 mylib # 개체 파일에서 실행 프로그램을 구축: program.o mylib.o gcc-o 프로그램 program.o mylib.o 예제 C에 대 한 간단한 메이크 파일 (또는 C ++) C를 컴파일 하기 위한 가장 간단한 메이크 파일 (또는 C++) 단일 .c 파일에서 프로그램, 확인 하 고 깨끗 한 규칙을 확인, 다음과 같은 것 (명령 부분 전에 TAB 문자를 추가 하는 것을 기억): # myprog.c 모든에서 myprog 라는 실행 파일을 구축: myprog.c gcc-gcc-wall-o myprog myprog.c 청소: $(RM) myprog a 약간 더 일반적인 간단한 makefile 위의 makefile의 약간 더 일반적인 버전, makefile 변수를 사용 하 여 (그냥 다른 넷 실행 파일을 구축 하려면 변수 정의 변경 또는 다른 컴파일러 또는 컴파일러 플래그): # 컴파일러: C에 대 한 gcc 프로그램, C ++ CC = gcc # 컴파일러 플래그에 대한 g ++로 정의 : # #g는 실행 파일 # -Wall에 디버깅 정보를 추가 대부분, 하지만 전부는 아니지만, 컴파일러 경고 CFLAGS = -g -Wall # 빌드 대상 실행 파일: 대상 = myprog 모두 : $(TARGET) $(TARGET) $(TARGET) CC) $(CFLAGS) -o $(TARGET) $(TARGET).c 클린: $(RM) $(TARGET) $(TARGET) 여러 .o 파일에서 실행 파일을 구축하는 예: # 이것은 카운트워드 프로그램에 대한 메이크파일예제입니다. 이 # 프로그램은 스캐너 모듈과 카운터 모듈을 모두 사용합니다. # `확인` 또는 `확인 카운트`를 입력하면 실행 파일이 생성됩니다. # # 컴파일러 및 컴파일러 플래그에 대한 일부 Makefile 변수를 정의하여 Makefile 의 나중에 Makefile 변수를 사용합니다: $() # ##g는 실행 파일 #-Wall에 디버깅 정보를 추가하지만, 모든 컴파일러 경고는 대부분 켜지지만, C++ CC = g++ CC = gcc C를 정의합니다. FLAGS = -g -Wall # 입력 `확인`은 파일 의 첫 번째 대상 항목을 호출합니다 (이 경우 기본 대상 항목) # 이 대상 항목의 이름을 지정할 수 있지만 «기본» 또는 «모두»는 규칙 # 기본값으로 가장 일반적으로 사용되는 이름입니다 : execu를 만들려면 # 카운트 # execu를 만듭니다. 테이블 파일 카운트 우리는 개체 파일이 필요합니다 # count.o, counter.o, 및 scanner.o: # 카운트 : count: countwords.o counter.o scanner.o $(CCFLAGS) $(CFLAGS) -o countwords.o counter.o scanner.o # 개체 파일 countwords.o를 만들려면 소스 # 파일이 필요합니다. countwords.c, scanner.h 및 counter.h: # countwords.o: countwords.c scanner.h $(CC) $(CFLAGS) -c countwords.c # 개체 파일 counter.o를 만들려면 소스 파일 #counter.c 및 counter.h: # counter.o: counter.c counter.h $(CC) $(CFLAGS) ) -c counter.c # 개체 파일 스캐너를 만들려면, 우리는 소스 파일이 필요합니다 # scanner.c 및 scanner.h: # 스캐너.o: scanner.c scanner.o : scanner.c scanner.h $(CC) $(CFLAGS) -c scanner.c # 처음부터 다시 시작하려면 `깨끗하게`를 입력합니다.