makefile include 예제

명령줄에 대상이 지정되지 않은 경우 makepp는 파일의 첫 번째 대상을 빌드하려고 시도합니다. makefile이 하나 이상의 프로그램을 만드는 경우 기본적으로 모든 프로그램을 빌드하려고 할 가능성이 큽니까? 이 예제에서는 프로그래머가 인수 없이 makepp를 입력하는 경우 makepp는 모든 빌드를 시도하여 이 디렉터리에서 세 개의 프로그램을 모두 빌드하도록 합니다. 이러한 중복은 오류가 발생하기 쉽습니다. 새 개체 파일이 시스템에 추가되면 한 목록에 추가하고 다른 개체를 잊어버릴 수 있습니다. 우리는 위험을 제거하고 변수를 사용하여 메이크 파일을 단순화 할 수 있습니다. 변수를 사용하면 텍스트 문자열을 한 번 정의하고 나중에 여러 위치에서 대체할 수 있습니다(변수 사용 방법 섹션 참조). 위의 makefile은 작동하지만이 간단한 문제에 대해서도 숙련 된 사용자가 이 방법으로 자신의 makefilefile을 작성할 가능성이 없습니다. 다음 섹션에서는 몇 가지 개선 사항에 대해 설명합니다. 현재 디렉터리로 어떤 디렉토리가 발생하든 makemakepp가 항상 올바른 makefile파일을 로드하도록 하기 위해 할 수 있는 일은 다음과 같이 -F 명령줄 옵션을 사용하는 것입니다: 이 예제에서는 모든 C 파일에 `defs.h`가 포함되어 있지만 편집을 정의하는 파일만 포함됩니다. 명령에는 `command.h`가 포함되며 편집기 버퍼를 변경하는 하위 수준 파일만 `buffer.h`를 포함합니다. 하위 디렉터리의 makefile은 다음과 같이 보일 수 있습니다: 패턴 규칙을 사용할 때 동일한 파일을 생성할 수 있는 두 가지 다른 규칙이 있는 것은 드문 일이 아닙니다. 두 규칙이 모두 패턴 규칙인 경우 makefile의 나중에 발생하는 규칙이 실제로 사용됩니다. 한 규칙이 패턴 규칙이고 다른 규칙이 명시적 규칙(대상 파일의 이름을 명시적으로 지정하는 규칙)인 경우 명시적 규칙이 사용됩니다.

이 기능은 동일한 명령으로 대부분의 모듈을 컴파일하려는 경우 유용하지만 이 makefile 조각에 표시된 것처럼 약간 다른 컴파일 옵션이 필요한 모듈이 하나 있는 경우 이 모듈을 생략합니다. 포니: 설치 라인. 즉, 대상을 정의한 것과 동일한 줄에서 가짜로 선언할 수 있으므로 메이크 파일을 더 읽기 쉽게 만들 수 있습니다. makefile의 탭은 블로그 게시 소프트웨어에 의해 공백으로 변환되었습니다. 사실, 우리는 컴파일 옵션을 변경하기 위해 makefile을 변경할 필요가 없습니다. 명령줄에 지정된 할당은 makefile의 할당을 재정의합니다. 예를 들어 셸에 이 것을 입력할 수 있습니다. 아래 예제에서는 모든 포함 된 파일 매크로 DEPS의 일부로 나열 되어야 하 고 모든 개체 파일 매크로 OBJ의 일부로 나열 해야 합니다. 그러나 포함 된 파일 목록을 변경할 때마다 makefile을 수정하는 것은 매우 성가신 일이며 오류가 발생하기 쉽습니다. processing.cxx에 포함 된 파일뿐만 아니라 해당 파일에 포함 된 모든 파일 등을 나열해야합니다.

당신은이 작업을 수행 할 필요가 없습니다. Makepp는 자동으로 포함 파일을 확인할 수있을만큼 똑똑합니다. C 또는 C++ 컴파일처럼 보이는 명령이 보일 때마다(작업의 첫 번째 단어를 보면) #include 지시문을 찾는 원본 파일에서 읽습니다. 컴파일러 명령줄에서 -I 옵션을 검색하여 포함 파일을 찾을 위치를 알고 있습니다. 포함된 모든 파일은 종속성 목록에 자동으로 추가되고 종속 파일이 포함된 모든 파일이 추가됩니다. 변경된 파일이 있으면 파일이 다시 컴파일됩니다. 당신은 무엇을 해야할지 말해 메이크 파일이라는 파일이 필요합니다. 대부분의 경우, makefile은 프로그램을 컴파일하고 연결하는 방법을 알려줍니다. 그러나 이것은 와일드 카드를 통해 찾기를 사용하여 거의 내 메이크 파일입니다. 아, 그리고 ctags 세대 물건. 메이크 파일은 makepp에게 프로그램을 구축하는 방법을 알려주는 데 사용하는 지침 세트입니다. Makepp는 표준 유닉스 만들기를 위해 작성된 대부분의 메이크 파일을 받아 들일 수 있지만 처음부터 시작하는 경우 종종 Makepp의 고급 기능 중 일부를 사용하는 것이 훨씬 간단합니다.

 
Mobile Site

Follow Us On Facebook Follow Us On Twitter Follow Us On Google + Follow Us On LinkedIn Follow Us On You Tube Copyright 2020 © All Rights Reserved. Powered by - ARE Network Solutions