오토젠의 직업은 무엇입니까?Linux에서 c++ 패키지를 구축할 때 sh
리눅스(Ubuntu 16.04)에서 소스에서 c/c++ 패키지를 설치할 때 일반적인 패턴을 볼 수 있었습니다.
- ./autogen.sh
- ./구성
- 만들다
- 설치하다
알겠습니다.make
그리고.make install
, 아마.configure
사용자 환경설정을 기반으로 만들기 파일을 만들지만 이유를 알 수 없습니다.autogen.sh
필요합니다.
거기에 무엇을 위한 것인지 아는 사람?
단계:
그
autogen.sh
스크립트는 다음을 생성합니다.configure
대본(발신)configure.ac
, autocconf) 및 필요한 모든 파일(생성 등) 사용Makefile.in
부터Makefile.am
automake)를 사용합니다.이를 위해서는 시스템에 자동 도구를 설치해야 하며, 소스 제어에서 프로젝트를 체크아웃할 때 자동 도구를 실행해야 합니다(경우).configure
(체크인되지 않음)소스 타르볼을 다운로드하는 사람들은 보통 이 단계를 생략할 수 있는데, 이 단계의 출력은 소스 타르볼에 포함되기 때문입니다.참고 이것은 일반적으로 다음과 같습니다.
autoreconf --install
. 없는 경우autogen.sh
파일을 작성한 다음 실행합니다.autoreconf --install
대신.프로젝트를 상속받은 경우autogen.sh
, 사용할 수 있으면 삭제를 고려합니다.autoreconf --install
.그
configure
스크립트가 생성합니다.Makefile
구축에 필요한 다른 파일들이 있습니다.일반적으로.Makefile.in
를 생성하기 위한 템플릿으로 사용됩니다.Makefile
(그리고config.h.in
만들어 내다config.h
이 프로세스는 sed나 awk와 같이 시스템에 설치된 표준 도구만 사용하여 수행되며 자동 도구를 설치할 필요가 없습니다.그
make
명령어는 소프트웨어를 만듭니다.그
make install
command가 설치합니다.
이것들은 종종 다른 시간에 실행되기 때문에 다른 단계로 나누어집니다.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
'programing' 카테고리의 다른 글
Null이거나 JavaScript에서 정의되지 않은 경우 값 바꾸기 (0) | 2023.10.07 |
---|---|
두 열의 좌측 외측 접합 성능 문제 (0) | 2023.10.07 |
jquery select2 - 작동하지 않음 (0) | 2023.10.07 |
두 개 이상의 Wordpress Cron을 실행하여 서로 다른 고정 간격으로 데이터베이스를 업데이트합니다. (0) | 2023.10.07 |
AngularJS bootstrap.ui modal이 표시되지 않습니다. (0) | 2023.10.02 |