My Blog

리눅스 makefile 예제

by kai on 2. August 2019 , No comments

대상이 파일일 필요는 없습니다. 그것은 우리의 예에서와 같이, 조리법에 대한 단지 이름 일 수있다. 이를 „가짜 표적“이라고 부릅니다. 이 형태의 메이크 파일을 사용하는 것은 대부분의 소규모 프로젝트에 충분합니다. 그러나 포함 파일에 대한 종속성이라는 한 가지 누락된 점이 있습니다. 예를 들어 hellomake.h로 변경하는 경우 .c 파일을 다시 컴파일하지 않습니다. 이 문제를 해결하려면 모든 .c 파일이 특정 .h 파일에 종속되도록 해야 합니다. 우리는 간단한 규칙을 작성하고 makefile에 추가하여이 작업을 수행 할 수 있습니다. Makefile유닉스, 리눅스, 그리고 그들의 맛에서 실행 되는 프로그램 건물 도구입니다. 다양한 모듈이 필요할 수 있는 건물 프로그램 실행 도구를 단순화하는 데 도움이 됩니다. 모듈을 함께 컴파일하거나 다시 컴파일하는 방법을 결정하려면 사용자 정의 makefiles의 도움을 받습니다. 이 튜토리얼은 makefile의 구조와 유틸리티에 대한 지식을 향상시켜야한다. 이 규칙을 Makefile 또는 makefile이라는 파일에 넣은 다음 명령 줄에 makefile을 입력하면 makefile에 작성한 대로 컴파일 명령을 실행합니다.

인수없이 확인은 파일의 첫 번째 규칙을 실행합니다. 또한 명령이 다음 의 첫 번째 줄에 의존하는 파일 목록을 배치하여 해당 파일중 어느 것이라도 변경되면 hellomake 규칙을 실행해야 한다는 것을 알고 있어야 합니다. 즉시 #1 문제를 해결하고 마지막 컴파일 명령을 찾고 위로 화살표를 반복적으로 사용하지 않도록 할 수 있습니다. 그러나 시스템은 여전히 최신 변경 사항만 컴파일하는 측면에서 효율적이지 않습니다. 안타깝게도 컴파일에 대한 이 접근 방식에는 두 가지 단점이 있습니다. 첫째, 컴파일 명령을 잃거나 컴퓨터를 전환하면 처음부터 다시 입력해야하므로 기껏해야 비효율적입니다. 둘째, 하나의 .c 파일만 변경하는 경우 매번 모든 파일을 다시 컴파일하는 것도 시간과 비효율적입니다. 그래서, 그것은 우리가 메이크 파일로 무엇을 할 수 있는지 볼 시간이다. 또한 CMake는 크로스 플랫폼 빌드 시스템입니다. 무엇보다도, cmake는 당신을 위해 메이크 파일을 생성합니다. 대규모 프로젝트, 많은 라이브러리를 사용하는 빌드 및 플랫폼별 컴파일 문제를 처리하는 데 특히 유용합니다.

그것은 자동으로 생성 (종종 읽기 및 디버깅 하기 어려운) 다른 플랫폼에 대 한 makefiles. 작은 프로젝트의 경우, 직접 파일 작성이 더 쉬울 수 있습니다. cmake에 대한 자세한 내용은 앤디 다너의 Cmake 문서를 참조하십시오. 최종 단순화로:의 왼쪽과 오른쪽인 특수 매크로 $@ 및 $^를 사용하여 전체 컴파일 규칙을 보다 일반화해 보겠습니다. 아래 예제에서는 모든 포함 된 파일 매크로 DEPS의 일부로 나열 되어야 합니다 및 모든 개체 파일 매크로 OBJ의 일부로 나열 되어야 합니다. 을 따르고 실제 명령 출력을 수행합니다.

kai리눅스 makefile 예제