Qt 빌드: "make clean"으로 인해 모든 것이 다시 컴파일됩니까?

Qt 빌드: "make clean"으로 인해 모든 것이 다시 컴파일됩니까?

(이것은 Qt4.7.3 이상의 버전에서 작동합니다.) QtDebian 컴퓨터에서 사용자 정의 매개변수를 사용하여 빌드를 시도했지만 실제로 컴파일하는 데 오랜 시간이 걸렸습니다(단일 코어 CPU에서 IIRC가 6시간 이상). 그렇기 때문에 나는 그 과정에서 어리석은 실수를 저지르지 않도록 하고 싶습니다. 그러나 성공적으로 연결한 후에는 파일과 기타 콘텐츠를 정리하기로 선택했습니다 make clean. *.o이것은 나쁜 생각인 것 같습니다! 그 후에 한 번 해봤 make install더니 믿기지 않으실 테니까 make clean.모든 것정리 과정 후 다시 컴파일하세요! 지금까지는 make clean대상 파일과 관련 항목을 모두 삭제하더라도 새로 설치가 가능할 것이라고 생각했습니다 . 분명히 그것으로 Qt상황이 다릅니다.

공식 문서에서 Qt 4.7(참조http://qt-project.org/doc/qt-4.7/install-x11.html), 그들은 언급조차 하지 않았습니다임의로 선택할 수 있는 make clean명령의 순서를 따르십시오. 지금 내가 아는 한, 여기에는 타당한 이유가 있습니다. 그럼에도 불구하고 저는 이것을 "표준 준수"라고 부를 수 없습니다. 수백 개의 오픈 소스 애플리케이션을 컴파일했고 make clean재컴파일 프로세스를 트리거한 적이 없으며 보존되어야 하는 어떤 것도 제거하지 않았기 때문입니다(버그가 없는 한).

답변1

make cleana 이전에 a를 하는 것이 make install해야 할 일이라는 생각을 어디서 얻었는지 모르겠습니다 .

자동 도구의 ​​사양 INSTALL문서에는 프로세스가 자세히 설명되어 있습니다.

  1. ./configure
  2. make
  3. make check(임의로 선택할 수 있는)
  4. make install
  5. make installcheck(임의로 선택할 수 있는)

항목 6에는 다음과 같이 나와 있습니다.

당신은 삭제할 수 있습니다프로그램 바이너리. 및 소스 코드 디렉토리의 개체 파일을 입력합니다 make clean.

(강조합니다.)

make clean이는 깨끗한 빌드를 얻고 이전 실행에서 남은 부산물이 없는지 확인하기 위해 다시 컴파일하기 전에 수행하는 작업입니다. 할 수 있어요뒤쪽에a make install일부 공간을 확보하고 소스 코드와 구성을 유지하려는 경우. 당신은해야아니요설치하기 전에 이 작업을 수행하십시오.

답변2

Qt 빌드 스크립트는 다음과 같이 작동합니다.

1 First build qmake
2 Generate Makefile for a subprojects (*.pro)
3 Start building libaries, then examples and demo projects

예, make clean은 Qt에서 생성된 구성 파일을 제외한 모든 항목을 지웁니다.

내 비결은 상위 *.pro 파일에서 "데모"와 "예제"를 제거하는 것이었습니다. 이로 인해 약 40%의 시간이 절약되었습니다(i5 CPU 기준).

어쨌든 컴파일 속도를 높이기 위해 ccache를 설정할 수 있지만 버퍼링을 위해 약 2G 이상의 디스크 공간이 필요합니다.

관련 정보