2009-11-15 3 views
1

GNU가 홍보하는 방법으로 배포 된 소스에서 몇몇 라이브러리를 설치한다고 가정하십시오. "./configure --prefix"를 사용하여 설치할 위치를 지정할 때.설치 과정에서 make가 configure, make, make install을 통해 생성 한 파일들에 대한 디렉토리

(1) Make 현재 디렉토리 아래에서 바이너리를 생성합니까? Make install은 현재 디렉토리 (Make가 실행되는 곳)에서 $ prefix로 복사합니다. 대답이 '예'인 경우 각각 다른 경우에 대해 두 가지 질문이 있습니다.

(2) 현재 디렉토리와 $ 접두사가 같지 않은 경우 현재 디렉토리에서 Make로 생성 된 모든 파일을 제거하여 일부 공간을 절약 할 수 있습니까?

(3) 현재 디렉토리와 $ 접두어가 같은 경우 make install은 아무 것도하지 않거나 파일을 자신에게 복사합니까? make install 단계를 건너 뛸 수 있습니까?

답변

0
  1. 당신은 절대적이다 오른쪽 : make은 현재 디렉터리에 파일을 만들고 make install$prefixconfigure 스크립트가 유지 관리하는 다른 변수를 기반으로 대상 디렉터리에 파일을 복사합니다.

  2. 빌드를 실행 한 전체 디렉토리를 지울 수 있습니다. 그것은 "설치"가 의미하는 것이기 때문에 하나의 디렉토리에 파일을 만들고 시스템의 적절한 위치에 배치하기 때문에 사용되지 않습니다.

  3. 일반적으로 설치 대상과 빌드하는 디렉토리가 다릅니다. 설치되는 파일의 계층 구조는 대개 빌드 시스템의 디렉토리 계층 구조와 관련이 없습니다. 다른 디렉토리에 설치하기 만하면 다른 디렉토리를 만드는 것이 저렴합니다.

1

첫 번째 질문에 대한 답은 아마도 '예'입니다.

나머지는 make clean이며 make으로 생성 된 파일을 정리할 수 있습니다.

필자는 makefile이 현재 디렉토리와 $ 접두사가 같지 않은 상황을 처리 할 수 ​​있다고 생각하며 올바른 일을합니다.

현재 디렉토리는 일반적으로 메이크 파일에 의해 만들어진 파일의 대상이 아닙니다.

(물론 메이크 기록 방법에 따라 달라집니다, 그래서 나는 확실한 답을 줄 수는 없지만, 나는 일반적으로 내가 사용했던 메이크와 감동했습니다)

+0

감사합니다. 현재 디렉토리로, make가 실행되는 곳을 의미합니다. – Tim