지금 다중 파일 프로그램을 작성 중이며 어떤 이유로 든 대부분의 상황에서 직관적으로 수행해야한다고 생각하는 것처럼 ‘make’만 실행하면 프로그램이 실패합니다. 문제에 대한 자세한 정보를 제공 할 수는 있지만 중요한 것은 ‘make clean’을 사용할 때 문제가 발생한다는 것입니다. 그래서 누군가가 ‘make’대신 ‘make clean’을 실행하는 일반적인 경험 법칙을 알고 있는지 궁금합니다.
답변
소스 코드를 패키징하려는 경우 (따라서 빌드 된 오브젝트가 필요하지 않음) 또는 빌드 된 오브젝트가 불량하다고 믿을만한 이유가있는 경우 두 가지 상황에서 make clean을 실행합니다.
귀하의 경우 버그가 많은 Makefile의 결과 일 수있는 문제를 해결하기 위해 ‘make clean’을 사용하고 있습니다. 거기에 무언가가 있어야 할 때 다시 컴파일하지 않고 출력 바이너리가 잘못됩니다.
프로젝트의 복잡성 및 사용 방법에 따라 발생할 수있는 여러 가지 이유가 있지만 그 장점은 Makefile을 디버깅하는 데 시간을 소비해야한다는 것입니다.
답변
나는 Michael Kohne의 답변에 일반적으로 동의합니다. “make clean”이 실제로 무엇을하는지 알기 위해 설치 문서를 읽어야합니다. “realclean 만들기”및 “distclean 만들기”와 같이 사용해야 할 여러 수준의 정리가있을 수 있습니다. 이것에 대한 비공식적 인 협약이 있지만 돌에는 새겨진 것이 없습니다.
답변
이 프로젝트는 귀하의 프로젝트이므로 귀하의 프로젝트임을 이해합니다 makefile
. 내 목표는 가능한 한 make
항상 올바른 빌드를 생성하는 것입니다. 경우 make clean
, 어떤 조건에서 복구 할 필요가 다음 내 의견으로는 makefile
잘못하고 수정해야합니다. 종속성이 올바르게 계산 된 경우 간단하게 make
다시 컴파일해야하는 모든 항목을 다시 컴파일해야합니다.
답변
나는 야간 빌드 전에 “make clean”을 실행할 것이다. 이 경우 전체 빌드를 수행하는 데 걸리는 추가 시간은 그다지 중요하지 않지만 모든 것이 올바른 버전인지 확인하면 얻을 수있는 추가 안전이 가치가있을 것입니다.