Makefile 정보 – 파트 I
오늘은 한 번에 많은 프로그램을 컴파일하는 효율적인 자동화 도구인
Makefiles
및 make
에 대해 간략하게 설명하겠습니다.SPO600 프로젝트를 하다가 다양한 기능을 가진 많은 제품
Makefiles
을 접하고 어떻게 작동하는지 궁금해서 이렇게 글을 씁니다.내가 가장 먼저 알아차린 것은 모든
Makefiles
가 컴파일하는 것이 아니라 대부분 다음과 같은 플래그와 구성을 가지고 있다는 것입니다.Makefiles
의 일반적인 용도는 other Makefiles
에 포함할 변수를 설정하는 것입니다.그러나 먼저 처음부터 어떻게 작동하는지 이해합시다.
Makefile의 목적은 무엇입니까?
A
Makefile
는 make
명령이 호출될 때 읽을 일련의 명령입니다.Make
그런 다음 Makefile
를 읽고 지시에 따라 원하는 프로그램을 컴파일하고 링크합니다.Makefile
의 기능은 다음과 같은 여러 make
스크립트를 만드는 것입니다.make
: Makefile
를 실행합니다.make clean
: Makefile
및 기타make install
는 tar 패키지 및 기타 패키지를 만들고 설치합니다make distclean
및 make realclean
는 make clean과 동일한 파일을 제거하지만 TAGS, makefiles 및 config.status 파일, make realclean
는 .texinfo에서 생성된 정보 파일도 제거합니다.The makefile can also tell make how to run miscellaneous commands when explicitly asked (for example, to remove certain files as a clean-up operation).
출처: GNU
Make는 어떻게 작동합니까?
make
명령은 디렉토리를 읽고 Makefile
를 검색합니다. 그런 다음 첫 번째 규칙 처리를 시작합니다. 규칙은 대상, 전제 조건 및 레시피가 있는 지침입니다.A target is usually the name of a file that is generated by a program; examples of targets are executable or object files. A target can also be the name of an action to carry out, such as ‘clean’ (see Phony Targets).
A prerequisite is a file that is used as input to create the target. A target often depends on several files.
A recipe is an action that make carries out. A recipe may have more than one command, either on the same line or each on its own line. Please note: you need to put a tab character at the beginning of every recipe line! This is an obscurity that catches the unwary. If you prefer to prefix your recipes with a character other than tab, you can set the .RECIPEPREFIX variable to an alternate character (see Special Variables).
원천:
쉬워보이죠?
이 다음 스크린샷을 보고 생각을 바꿔 보겠습니다.
보시다시피 많은 변수가 사용되고 있기 때문에 무슨 일이 일어나고 있는지 이해하기가 정말 어렵습니다.
변수를 사용하여 삶을 더 쉽게 만들 수 있습니까?
예, 중복을 피하고 중복성을 줄이기 위해 변수를 설정할 수 있습니다.
위의 스크린샷을 보면 두 번째 줄이 변수를 선언하고 여기에 값을 할당하는 것을 볼 수 있습니다.
SKIPHEADERS = compat/s32pthreads.h
이렇게 하면 사용하고 싶을 때마다 하기만 하면 됩니다
$(SKIPHEADERS)
.예를 들어:
TESTOOLS
가 선언되고 즉시 HOSTPROGS
에서 사용됩니다.Makefiles
와 make
에 대한 설명은 다음 포스팅에서 이어가도록 하겠습니다!거기서 만나요. 읽어주셔서 감사합니다!
Reference
이 문제에 관하여(Makefile 정보 – 파트 I), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/xguhx/about-makefiles-part-i-4oo7텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)