autoconf 및 autotools 대체 방법
저는 GNU Autotools(대부분 Autoconf, 때로는 Libtool)를 자주 사용하고 있습니다.휴대성이 걸림돌이 되는 프로젝트를 진행하고 있습니다.하지만 나머지 팀원들은 M4와 함께 일하는 것이 편치 않습니다.한 명이 아니라 네 명이서 받은 거예요

어쨌든 누군가 Python이나 PHP 기반의 것을 추천할 수 있을까요?저는 더 큰 트리의 C 엔드에서 일하고 있습니다.Python이나 PHP 5 중 하나가 필수 조건이기 때문에 반드시 존재할 것입니다.
나는 낮은 투표의 위험을 무릅쓰고 있지만, 불행히도 오토툴을 대체할 수 있는 실질적인 방법은 없다는 것을 인정해야 한다.CMake, SCons, Bjam도 좋지만 진지한 일에 있어서는...CMake가 같은 일을 할 수 없기 때문이 아니라 오토툴을 사용하는 것이 훨씬 더 어렵기 때문에 오토툴이 우수하다는 것은 꽤 분명하다.
예를 들어, 자동 툴의 가장 일반적인 대체 수단인 CMake에는 다음과 같은 단점이 있습니다.
- gettext는 지원되지 않습니다.이것은 많은 번역과 번역된 소스 코드를 관리해야 할 때 실제로 문제가 될 수 있습니다.
- 제거 대상을 지원하지 않습니다.인스톨 한 프로그램을 언인스톨 할 수 없는 경우는, 매우 불쾌합니다.
- 공유 라이브러리와 정적 라이브러리 모두 자동으로 빌드되지 않습니다.
- 문서는 매우 제한적이고 불량합니다.
기타 등등.
그 밖에도 여러 가지 포인트가 있습니다.유감스럽게도 오토툴을 대체할 수 있는 고품질 제품은 없습니다.한편, Windows 및 Visual Studio에서 개발한 경우에는 자동 도구를 사용할 수 없으며 이러한 도구를 제공하는 CMake를 선택해야 합니다.
같은 문제를 해결하려고 노력하는 CMake에 대해 좋은 이야기를 들었습니다.여기 위키피디아 기사가 있습니다.
나는 SCons를 잘 해냈다.Python을 사용하여 구축되었으며 빌드 스크립트 자체가 Python 스크립트이기 때문에 표현력이 매우 뛰어납니다.웹 사이트:
SCons는 오픈 소스 소프트웨어 구축 도구, 즉 차세대 빌드 도구입니다.의 SCon을 된 크로스 하시면 됩니다.
Make「」와 같은 .autoconf/automake예:ccache한마디로 SCon은 소프트웨어를 구축하기 위한 보다 쉽고 신뢰성 높은 방법입니다.
다양한 Makefile 생성기 및 빌드 시스템이 있습니다.
또한 C/C++를 대상으로 하지만 스트링 타깃은 아닙니다.
그러나 이 모든 것을 나열한 결과, 자동 툴은 최종 사용자에게 다른 의존 관계가 필요하지 않다는 큰 이점이 있습니다.설정 스크립트는 개발자에 의해 한 번만 생성되며 셸 스크립트이므로 사용자 측에서 특별한 작업이 필요하지 않습니다.위에 나열된 도구는 다른 사용자가 소스를 구축하기 전에 설치해야 하며, 이러한 도구 자체에도 종속성이 있을 수 있습니다.
간단하게 Make와 pkg-config를 사용하면 어떨까요?
여기 Makefile 템플릿이 있습니다.
적은 것이 많은 것이다.
auto* 교환을 1회 더 - mk-configure.문서는 여기에서 찾을 수 있습니다.
크로스 컴파일을 하지 않는 한 좋은 대안이 될 것 같은 CMake에 대해 살펴보았습니다.네이티브 컴파일을 하고 있다면 시도해 보세요.
Mozilla - pymake - 에서 작성되고 있는 파이썬 버전은 크로스 플랫폼 사용을 지원하는 것으로 추정됩니다.
ANT 또는 maven에서 C/C++ 소프트웨어를 빌드하는 경우 terp에 관심이 있을 수 있습니다.여기에는 많은 플랫폼에서 많은 C++ 컴파일러와 함께 작동하는 휴대용 C++ 컴파일러 태스크가 포함되어 있습니다.
언급URL : https://stackoverflow.com/questions/600274/alternatives-to-autoconf-and-autotools
'programing' 카테고리의 다른 글
| 정수 오버플로로 인해 메모리 파손으로 정의되지 않은 동작이 발생합니까? (0) | 2022.07.12 |
|---|---|
| C의 int에 long int를 할당하면 어떻게 됩니까? (0) | 2022.07.12 |
| vuetify 데이터 테이블에서 행 내부의 버튼 클릭 이벤트와 행 클릭 이벤트를 분리하는 방법 (0) | 2022.07.12 |
| Vue-i18n '프록시에 정의되지 않은 속성 '_t'을 읽을 수 없습니다.Vue.$t' (0) | 2022.07.12 |
| include statement, header 또는 source를 어디에 배치해야 합니까? (0) | 2022.07.12 |