링크 ux 에서 Makefile 설정 파일 및 make 도구 사용

3186 단어
1. make 도구 및 makefile 파일
       make 는 Makefile 의 명령 을 설명 하 는 명령 도구 입 니 다.Makefile 파일 에서 전체 프로젝트 의 모든 파일 의 컴 파일 순서, 컴 파일 규칙 을 설명 합 니 다.Makefile 은 자신의 쓰기 형식, 키워드, 함수 가 있 습 니 다.C 언어 는 자신의 형식, 키워드, 함수 가 있 는 것 과 같다.또한 Makefile 에 서 는 시스템 셸 이 제공 하 는 모든 명령 을 사용 하여 원 하 는 작업 을 수행 할 수 있 습 니 다.Makefile (다른 시스템 에 서 는 다른 파일 이름 일 수 있 습 니 다) 은 절대 다수의 IDE 개발 환경 에서 사용 되 고 있 으 며, 이미 프로젝트 의 컴 파일 방법 이 되 었 습 니 다.
2. Makefile 파일
target ... : prerequisites ...
             command1
             command2
             ... ...
       target 은 대상 입 니 다. 대상 파일 일 수도 있 고 실행 가능 한 파일 일 수도 있 습 니 다. 탭 (Label) 일 수도 있 습 니 다.target 이 태그 라면 '위조 목표' 라 고도 부른다.prerequisites 는 target 에 필요 한 파일 이나 목 표를 만 드 는 것 입 니 다.command 즉 make 가 실행 해 야 할 명령 입 니 다.(임의의 셸 명령)
      이것 은 파일 의 의존 관계 입 니 다. 즉, target 이라는 하나 이상 의 대상 파일 은 prerequisites 의 파일 에 의존 하고 생 성 규칙 은 command 에 정 의 됩 니 다.말하자면 prerequisites 에서 target 파일 보다 파일 이 하나 이상 새 로 워 지면 command 가 정의 하 는 명령 이 실 행 됩 니 다.이것 이 바로 Makefile 의 규칙 이다.메 이 크 파일 의 가장 핵심 적 인 내용 이다.
      예 를 들 어 하나의 프로젝트 에 세 개의 헤더 파일 과 8 개의 C 파일 이 있다 면 우 리 는 앞에서 말 한 세 가지 규칙 을 완성 하기 위해 우리 의 Makefile 은 아래 의 이런 모습 일 것 이다.
비고:
(1) 역 슬 래 쉬 (/) 는 줄 바 꿈 문자 의 뜻 이다.이렇게 하면 Makefile 의 읽 기 쉽다.
(2) 명령 행 은 반드시 Tab 키 로 시작 해 야 한다.
(3) make 는 targets 파일 과 prerequisites 파일 의 수정 날 짜 를 비교 합 니 다. prerequisites 파일 의 날짜 가 targets 파일 의 날짜 보다 새 롭 거나 target 이 존재 하지 않 으 면 make 는 후속 정의 명령 을 수행 합 니 다.
(4) '위조 목표' 가 파일 이름 을 바 꾸 는 상황 을 피하 기 위해 우 리 는 특수 한 태그 'PHONY' 를 사용 하여 하나의 목 표를 '위조 목표' 라 고 표시 하고 make 에 설명 할 수 있 습 니 다. 이 파일 이 있 든 없 든 이 목 표 는 '위조 목표' 입 니 다.예 를 들 어. PHONY: clean 은 clean 이라는 target 을 가짜 목표 로 설명 합 니 다.
3. make 의 작업 원리
     기본적으로 우 리 는 make 명령 만 입력 합 니 다.그럼,
(a) make 는 현재 디 렉 터 리 에서 "Makefile"또는 "Makefile"이라는 파일 을 찾 습 니 다.
(b) 찾 으 면 파일 의 첫 번 째 대상 파일 (target) 을 찾 습 니 다. 위의 예 에서 'edit' 라 는 파일 을 찾 고 이 파일 을 최종 대상 파일 로 합 니 다.
(c) edit 파일 이 존재 하지 않 거나 edit 가 의존 하 는 뒤의. o 파일 의 파일 수정 시간 이 edit 파일 보다 새 롭 으 면 그 는 뒤에 정 의 된 명령 을 실행 하여 edit 파일 을 생 성 합 니 다.
(d) edit 가 의존 하 는 o. o 파일 도 존재 한다 면 make 는 현재 파일 에서 대상 을 o 파일 로 찾 습 니 다. 찾 으 면 그 규칙 에 따라 o 파일 을 생 성 합 니 다.(이것 은 약간 창고 의 과정 같다)
(e) 물론 C 파일 과 H 파일 이 존재 합 니 다. 그래서 make 는 o 파일 을 생 성 한 다음 에 o 파일 생명 make 의 최종 작업, 즉 파일 edit 를 수행 합 니 다.
     이것 이 바로 전체 make 의 의존성 입 니 다. make 는 마지막 으로 첫 번 째 대상 파일 을 컴 파일 할 때 까지 파일 의 의존 관 계 를 찾 습 니 다.찾 는 과정 에서 마지막 에 의존 하 는 파일 을 찾 지 못 하면 make 는 바로 종료 되 고 오 류 를 보고 합 니 다. 정 의 된 명령 에 대한 오류 나 컴 파일 이 성공 하지 못 하면 make 는 전혀 아랑곳 하지 않 습 니 다.make 는 파일 의 의존성 만 신경 쓰 세 요. 즉, 제 가 의존 관 계 를 찾 은 후에 도 사칭 뒤의 파일 이 없 으 면 저 는 일 을 하지 않 습 니 다.
     상기 분석 을 통 해 우 리 는 clean 과 같이 첫 번 째 목표 파일 에 직접적 이거 나 간접 적 으로 연결 되 지 않 으 면 그 뒤에 정 의 된 명령 이 자동 으로 실행 되 지 않 는 다 는 것 을 알 고 있 습 니 다. 그러나 make 실행 을 표시 할 수 있 습 니 다.다시 컴 파일 할 수 있 도록 모든 대상 파일 을 삭제 하 라 는 명령 입 니 다.
     우리 가 make 도 구 를 직접 사용 할 때 Makefile 의 첫 번 째 target 은 기본 target 이 될 것 입 니 다. "위조 목표"에 대해 서 는 make "목표 이름"을 사용 하여 실행 할 수 있 습 니 다.
4. makefile 에서 변수의 사용
Makefile 파일 에서 objects = main. o kbd. o command. o display. o 를 사용 할 수 있 습 니 다. 변 수 를 설명 한 다음 $(objects) 를 사용 하여 변 수 를 사용 합 니 다.
학습 자료 출처 와:
http://wiki.ubuntu.org.cn/%E8%B7%9F%E6%88%91%E4%B8%80%E8%B5%B7%E5%86%99Makefile:%E6%A6%82%E8%BF%B0

좋은 웹페이지 즐겨찾기