programing

오토젠의 직업은 무엇입니까?Linux에서 c++ 패키지를 구축할 때 sh

testmans 2023. 10. 7. 09:30
반응형

오토젠의 직업은 무엇입니까?Linux에서 c++ 패키지를 구축할 때 sh

리눅스(Ubuntu 16.04)에서 소스에서 c/c++ 패키지를 설치할 때 일반적인 패턴을 볼 수 있었습니다.

  1. ./autogen.sh
  2. ./구성
  3. 만들다
  4. 설치하다

알겠습니다.make그리고.make install, 아마.configure사용자 환경설정을 기반으로 만들기 파일을 만들지만 이유를 알 수 없습니다.autogen.sh필요합니다.

거기에 무엇을 위한 것인지 아는 사람?

단계:

  1. autogen.sh스크립트는 다음을 생성합니다.configure대본(발신)configure.ac, autocconf) 및 필요한 모든 파일(생성 등) 사용Makefile.in부터Makefile.amautomake)를 사용합니다.이를 위해서는 시스템에 자동 도구를 설치해야 하며, 소스 제어에서 프로젝트를 체크아웃할 때 자동 도구를 실행해야 합니다(경우).configure(체크인되지 않음)소스 타르볼을 다운로드하는 사람들은 보통 이 단계를 생략할 수 있는데, 이 단계의 출력은 소스 타르볼에 포함되기 때문입니다.

    참고 이것은 일반적으로 다음과 같습니다.autoreconf --install. 없는 경우autogen.sh파일을 작성한 다음 실행합니다.autoreconf --install대신.프로젝트를 상속받은 경우autogen.sh, 사용할 수 있으면 삭제를 고려합니다.autoreconf --install.

  2. configure스크립트가 생성합니다.Makefile구축에 필요한 다른 파일들이 있습니다.일반적으로.Makefile.in를 생성하기 위한 템플릿으로 사용됩니다.Makefile(그리고config.h.in만들어 내다config.h이 프로세스는 sed나 awk와 같이 시스템에 설치된 표준 도구만 사용하여 수행되며 자동 도구를 설치할 필요가 없습니다.

  3. make명령어는 소프트웨어를 만듭니다.

  4. make installcommand가 설치합니다.

이것들은 종종 다른 시간에 실행되기 때문에 다른 단계로 나누어집니다.autogen.sh스텝은 전통적으로 소프트웨어를 개발하는 사람들에 의해 실행됩니다. 왜냐하면 그들은 그들의 시스템에 자동 컨프를 설치할 것으로 예상되고 그들은 다음과 같이 변경하기 때문입니다.configure.ac. 최종 사용자는 자동 도구를 설치하지 않을 것으로 예상됩니다.

이제 최종 사용자들은 소스 릴리스를 다운로드하는 대신 소스 제어가 불가능한 프로젝트를 확인할 가능성이 높아졌기 때문에 이러한 기대는 다소 바뀌었습니다.

자동 도구 빌드 체인을 사용하여 구축된 프로그램/라이브러리에만 적용됩니다.이것은 파일을 생성하는데, 이 파일들은 에 의해 구성됩니다.configure대본.그러면 구성 스크립트가 채워집니다..in 및 :Makefile에서 sMakefile.am템플릿들. 의 컴파일 할 수 .최종적으로 프로그램/라이브러리를 컴파일, 링크 및 설치하는 데 사용할 수 있습니다.

멀티 플랫폼 패키지로 이동함에 따라 점점 더 쓸모가 없어지고 있습니다.C make와 더 현대적인 툴 체인은 최첨단입니다.

언급URL : https://stackoverflow.com/questions/50044091/what-is-the-job-of-autogen-sh-when-building-a-c-package-on-linux

반응형