Development Tip

Autoconf 및 Autotools의 대안?

yourdevel 2021. 1. 9. 11:02
반응형

Autoconf 및 Autotools의 대안?


저는 GNU Autotools (대부분 Autoconf , 가끔 Libtool )를 자주 사용합니다 . 저는 이식성이 문제가되는 프로젝트를 진행 중입니다.하지만 나머지 팀원들은 m4 작업에 익숙하지 않습니다 . 내가 가지고 없는 한, 그러나 사명에서 내받은 편지함에 :

m4는 lisp가 아닙니다, 젠장!

어쨌든 누군가 Python 또는 PHP 기반을 추천 할 수 있습니까? 저는 훨씬 더 큰 트리의 C 끝에서 작업하고 있습니다. 전제 조건이기 때문에 Python 또는 PHP 5가 존재할 것이라고 확신 할 수 있습니다.


동일한 문제를 해결하려는 CMake에 대해 좋은 소식을 들었습니다 . 다음 은 위키피디아 기사입니다.


나는 비추천받을 기회를 잡았지만, 불행히도 autotools를 대체 할 수있는 것은 없다는 것을 인정해야합니다. CMake, SCons, bjam은 훌륭하지만 진지한 작업에 관해서는 autotools가 우월하다는 것이 분명합니다 .CMake가 똑같은 일을 할 수 없기 때문이 아니라 그렇게하는 것이 훨씬 더 어렵 기 때문입니다. .

예를 들어 autotools의 가장 인기있는 대안 인 CMake에는 다음과 같은 단점이 있습니다.

  • gettext를 지원하지 않습니다. 이것은 많은 번역과 번역 된 소스 코드를 관리해야 할 때 실제 문제가 될 수 있습니다.
  • 제거 대상을 지원하지 않습니다. 설치 한 프로그램을 제거 할 수 없다는 사실을 아는 것은 매우 불쾌합니다.
  • 아니오 자동 빌드되지 모두 공유 및 정적 라이브러리.
  • 문서는 매우 제한적이고 나쁩니다.

등등.

다른 많은 점이 있습니다. 불행히도 autotools에 대한 진정한 고품질 대체품은 없습니다. 반면에 Windows Visual Studio에서 개발하는 경우 autotools를 사용할 수 없으며 이러한 도구를 제공하는 CMake를 선택해야합니다.


저는 SCons로 좋은 성공을 거두었습니다 . Python으로 빌드되고 빌드 스크립트는 실제로 Python 스크립트 자체이므로 많은 표현력을 제공합니다. 웹 사이트에서 :

SCons는 오픈 소스 소프트웨어 구축 도구, 즉 차세대 빌드 도구입니다. SCons를 .NET과 같은 컴파일러 캐시와 Make유사한 통합 기능을 가진 클래식 유틸리티를 대체하는 향상된 크로스 플랫폼으로 생각하십시오 . 요컨대, SCons는 소프트웨어를 구축하는 더 쉽고, 더 안정적이고 빠른 방법입니다.autoconf/automakeccache


다양한 대체 Makefile 생성기와 빌드 시스템이 있습니다.

또한 사용할 수 있지만 C / C ++에서 엄격하게 타겟팅되지는 않습니다.

그러나 이들을 모두 나열한 후 autotools는 최종 사용자에게 다른 종속성을 요구하지 않는다는 큰 이점이 있습니다. 구성 스크립트는 개발자에 의해 한 번만 생성되며 셸 스크립트이므로 사용자 측에 특별한 것이 필요하지 않습니다. 위에 나열된 도구는 누구나 소스를 빌드하기 전에 설치해야하며 자체적으로 종속성이있을 수도 있습니다.


단순히 Makepkg-config를 사용하는 것은 어떻습니까?

다음은 시작하기 위한 Makefile 템플릿 입니다.

적은 것이 더 많은 사람입니다.


하나 더 자동 * 교체 -mk-configure . 문서는 여기 에서 찾을 수 있습니다 .


크로스 컴파일하지 않는 한 좋은 대안처럼 보이는 CMake를 살펴 보았습니다. 네이티브 컴파일을 수행하는 경우 시도해야합니다.


아마도 크로스 플랫폼 사용을 지원 하는 python 버전의 make가 Mozilla에서 생성되고 있습니다 -pymake- .


ANT 또는 maven에서 C / C ++ 소프트웨어를 빌드하려면 terp에 관심이있을 수 있습니다 . 여기에는 여러 플랫폼에서 많은 C ++ 컴파일러와 함께 작동하는 이식 가능한 C ++ 컴파일러 작업이 포함되어 있습니다.

참조 URL : https://stackoverflow.com/questions/600274/alternatives-to-autoconf-and-autotools

반응형