종속성이 있는 오픈 소스 소프트웨어를 작성하고 싶습니다. 나는 C/C++ 기술과 최소한의 makefile 지식을 가지고 있습니다. 하지만 이와 같은 코딩 ./configure && make
과 다른 라이브러리에 대한 종속성을 올바르게 포함하는 방법이 궁금합니다 .
따라하기 쉬운 튜토리얼과 배우기 어려운 튜토리얼은 어디에서 찾을 수 있나요?
답변1
구성이나 제작은 배우기 어렵지 않다고 생각합니다. 그러나 이는 복잡하고 배우기 까다로울 수 있습니다. 특히 실험을 통해 더욱 그렇습니다. 예를 들어, make에서는 대상을 빌드하는 명령이 엄격하게 탭으로 들여쓰기되어야 하므로 많은 경우 공백과 구별하기 어렵습니다.
다음은 이 두 가지(및 그 이상)를 모두 다루는 페이지입니다.http://autotoolset.sourceforge.net/tutorial.html#Compiling-with-Makefiles.
GNU 구성 표준에 관한 페이지도 있습니다:http://www.gnu.org/prep/standards/html_node/Configuration.html.
이것은 autoconf
구성 스크립트를 생성하기 위한 도구입니다. 물론 자신만의 구성 스크립트를 직접 개발할 수도 있지만 autoconf
표준 유형의 스크립트를 얻게 되며 많은 프로그래밍 노력을 절약할 수 있습니다.
답변2
그것의 많은 부분이 autoconf
. (공식 문서 외에) 제가 추천하는 특정 튜토리얼은 없지만 튜토리얼이 필요할 것이고 이것이 바로 여러분이 찾고 있는 것입니다. "Autoconf"는 구어적으로 "automake"를 포함한 도구 세트를 나타냅니다.
이 작업을 수행한 지 꽤 시간이 지났지만 내 노트를 통해 프로세스의 개요를 정리해 보겠습니다.
각 소스 디렉토리(소스를 최상위 레벨에 두지 말고 하위 디렉토리에 넣으십시오)에 대해 하나를 작성해야 합니다
Makefile.am
. 이는 일반 makefile의 규칙을 따르지만 컴파일 대상은 포함하지 않지만 대신 autoconf에만 해당됩니다. 프로세스 명명 체계는 일부 대상과 변수를 정의합니다. 이것 은 처리될 것입 니다automake
.최상위 수준에서는
configure.ac
파일을 생성해야 합니다. 도구autoscan
가 이 작업을 수행한 다음 조정할 수 있습니다.그런 다음 최상위 디렉터리에서 시작하여 ,
aclocal
,automake -ac
, ( 다시 실행autoheader
해야 할 수도 있음 ) 및 을 실행해야 합니다 . 여기에는 목적을 설명하는 매뉴얼 페이지가 있습니다.automake -ac
autoconf
바라보다! 패키지가 준비되었습니다.
배우기가 어렵나요?
전적으로지루한나는 그것이 매우 쉽다고 말하지 않을 것입니다. 프로젝트가 작고 특정 플랫폼만 대상으로 하는 경우 makefile에서 실행할 수 있는 종속성 검사 스크립트를 직접 작성할 수 있습니다.