문제

어느 날 시스템 관리자 선생님이 "make"를 컴파일을 유발하는 다른 많은 작업에 사용할 수 있기 때문에 사용법을 배워야 한다고 말했습니다.

나는 그것에 대해 더 이상 이야기할 기회가 없었습니다.좋은 예가 있나요?

보너스로, 이 도구는 더 이상 사용되지 않으며 현대적인 대안(컴파일 목적 및 기타 목적)은 무엇입니까?

도움이 되었습니까?

해결책

Make는 실행하려는 명령을 실행하는 데 사용할 수 있습니다.종속성 검사가 필요한 활동에 사용하는 것이 가장 좋지만 전자 메일 확인, 서버 재부팅, 백업 만들기 등을 위해 make를 사용할 수 없는 이유는 없습니다.

Ant, NAnt 및 msbuild는 현대적인 대안으로 여겨지지만 Java 또는 .NET을 사용하지 않는 환경에서는 여전히 plain-old-make가 광범위하게 사용됩니다.

다른 팁

컴파일 외에 make를 사용할 수 있는 훌륭한 것 중 하나는 LaTeX입니다.LaTeX를 사용하여 심각한 작업을 수행하는 경우 BibTex 또는 목차를 사용할 때 .tex 파일을 여러 번 다시 해석해야 하기 때문에 make가 매우 편리하다는 것을 알게 될 것입니다.

Make는 확실히 더 이상 사용되지 않습니다.동일한 작업을 수행하는 다양한 방법(Windows의 배치 파일, Linux의 쉘 스크립트)이 있지만 IMHO가 가장 잘 작동합니다.

이 도구는 더 이상 사용되지 않는 것 아닌가요?

무엇?!아니, 조금도 아닙니다.나는 Linux를 사용하고 있기 때문에 평범한 사람이 아니라는 것을 깨달았지만 거의 매일 사용하고 있습니다.나는 수천 명의 Linux 개발자가 있다고 확신합니다. 하다 매일 사용하십시오.

에 관한 기사를 본 기억이 나네요. 슬래시닷 몇 년 전에 make를 사용하여 Linux 부팅 순서를 최적화하는 기술을 설명했습니다.

편집하다:

다음은 IBM의 기사입니다. 원리를 설명하고 있습니다.

Make는 다음을 수행합니다. 위상 정렬, 즉, 주어진 여러 가지와 한 가지가 다른 것보다 먼저 있어야 하는 일련의 요구 사항이 있을 때 모든 요구 사항이 충족되도록 모든 것을 정렬하는 방법을 찾습니다.구축물(프로그램, 문서, 배포판 타르볼 등)은 토폴로지 정렬의 일반적인 용도 중 하나이지만 다른 용도도 있습니다.서버(NFS, NIS, DNS 등) 간의 종속성을 포함하여 데이터 센터의 모든 서버에 대해 하나의 항목으로 Makefile을 생성할 수 있으며 make는 정전 후 컴퓨터를 켜는 순서를 알려줄 수 있습니다. 정전이 발생하기 전에 전원을 끄는 순서는 무엇입니까?이를 사용하여 단일 서버에서 서비스를 시작하는 순서를 파악할 수 있습니다.이를 사용하여 아침에 옷을 어떤 순서로 입어야 하는지 알아낼 수 있습니다.A 형식의 특정 요구 사항을 충족하는 일련의 작업이나 작업의 순서를 B보다 먼저 찾아야 하는 모든 문제는 make로 해결될 수 있는 잠재적인 후보입니다.

내가 본 것 중 가장 무작위로 사용되는 것은 init 스크립트에서 bash 대신 make가 사용되는 것입니다. BCCD.일단 WTF 순간을 극복하고 나면 실제로 괜찮게 작동했습니다....

make를 기능이 추가된 쉘 스크립트로 생각하십시오.

글쎄, 나는 UNIX 도구 "make"가 .Net 세계에서 쇠퇴하고 있음에도 불구하고 여전히 많이 사용되고 있다고 확신합니다.요즘 더 많은 사람들이 MSBUILD, Ant, nAnt 및 기타 도구를 사용하고 있지만 기본적으로는 다른 파일 구문을 사용하여 "만들기"만 하는 것입니다.기본 개념은 동일합니다.

Make 도구는 출력 파일로 처리되는 입력 파일이 있는 모든 작업에 유용합니다.보고서를 MSWord로 작성하고 PDF로 배포하시겠습니까?-- PDF를 생성하려면 make를 사용하세요.

crontab을 통해 구성 파일 변경, 만약에 필요합니다.

나에게는 다음과 같은 예가 있습니다. postfix 지도 및 squid 외부 테이블.

/etc/postfix/Makefile의 예:

POSTMAP=/usr/sbin/postmap
POSTFIX=/usr/sbin/postfix

HASHES=transport access virtual canonical relocated annoying_senders
BTREES=clients_welcome

HASHES_DB=${HASHES:=.db}
BTREES_DB=${BTREES:=.db}

all: ${BTREES_DB} ${HASHES_DB} aliases.db
    echo \= Done

${HASHES_DB}: %.db: %
    echo . Rebuilding $< hash...
    ${POSTMAP} $<

${BTREES_DB}: %.db: %
    echo . Rebuilding $< btree...
    ${POSTMAP} $<

aliases.db: aliases
    echo . Rebuilding aliases...
    /usr/bin/newaliases

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top