62 Stimmen

Alternativen zu Autoconf und Autotools?

Ich bin ein sehr häufiger Benutzer des GNU Autotools (meist Autoconf gelegentlich Libtool ). Ich arbeite an einem Projekt, bei dem die Übertragbarkeit ein Knackpunkt sein wird. Doch der Rest des Teams fühlt sich einfach nicht wohl bei der Arbeit mit m4 . Ich habe este in meinem Posteingang nicht nur von einer, sondern von vier Personen:

m4 is NOT lisp, dammit!

Wie auch immer, vielleicht kann jemand etwas Python- oder PHP-basiertes empfehlen? Ich arbeite am C-Ende eines viel größeren Baums; ich kann sicher sein, dass entweder Python oder PHP 5 vorhanden sein werden, da sie Voraussetzungen sind.

58voto

Artyom Punkte 29856

Ich gehe das Risiko ein, abgelehnt zu werden, aber ich muss zugeben, dass es leider keinen echten Ersatz für Autotools gibt. CMake, SCons, bjam sind nett, aber wenn es um ernsthafte Arbeit geht... ist es ganz klar, dass Autotools überlegen sind, nicht weil CMake nicht das Gleiche kann, sondern weil es einfach viel schwieriger ist, es damit zu tun.

CMake, die beliebteste Alternative zu den Autotools, hat zum Beispiel folgende Nachteile:

  • Keine Unterstützung von gettext. Dies kann ein echtes Problem sein, wenn Sie viele Übersetzungen und übersetzten Quellcode verwalten müssen.
  • Keine Unterstützung für ein Deinstallationsziel. Es ist ziemlich unangenehm, wenn man feststellt, dass man das installierte Programm nicht deinstallieren kann.
  • Keine automatische Erstellung von beide gemeinsam genutzte und statische Bibliotheken.
  • Die Dokumentation ist sehr begrenzt und schlecht.

Und so weiter.

Es gibt noch viele andere Punkte. Leider gibt es keinen wirklich hochwertigen Ersatz für Autotools. Andererseits, wenn Sie unter Windows entwickeln und für Visual Studio, dann können Sie die Autotools nicht verwenden und müssen CMake wählen, das solche Tools bereitstellt.

39voto

Greg Hewgill Punkte 882617

Ich habe gute Erfahrungen gemacht mit SCons . Es ist mit Python aufgebaut und die Build-Skripte sind eigentlich Python-Skripte selbst, was eine große Ausdruckskraft verleiht. Von der Website:

SCons ist ein Open-Source-Software-Konstruktionswerkzeug, d.h. ein Build-Tool der nächsten Generation. Stellen Sie sich SCons als einen verbesserten, plattformübergreifenden Ersatz für das klassische Make Dienstprogramm mit integrierter Funktionalität ähnlich wie autoconf/automake und Compiler-Caches wie z. B. ccache . Kurz gesagt, SCons ist eine einfachere, zuverlässigere und schnellere Art, Software zu entwickeln.

39voto

epatel Punkte 45365

Ich habe viel Gutes gehört über CMake das versucht, die gleichen Probleme zu lösen. Hier ist der wikipedia-Artikel

19voto

raimue Punkte 4182

Es gibt eine Vielzahl von alternativen Makefile-Generatoren und Build-Systemen:

Ebenfalls verfügbar, aber nicht zwingend auf C/C++ ausgerichtet:

Nach der Aufzählung all dieser Punkte haben Autotools den großen Vorteil, dass sie für den Endbenutzer keine weiteren Abhängigkeiten erfordern. Ein configure-Skript wird nur einmal vom Entwickler erstellt und erfordert keine besonderen Anforderungen auf der Benutzerseite, da es sich um ein Shell-Skript handelt. Die oben aufgeführten Werkzeuge müssen installiert werden, bevor jemand Ihren Quellcode bauen kann, und sie können sogar selbst Abhängigkeiten haben.

16voto

hendry Punkte 8451

Wie wäre es mit der einfachen Verwendung von Machen Sie y pkg-config ?

Hier ist ein Makefile-Vorlage um Ihnen den Einstieg zu erleichtern.

Weniger ist mehr, Leute.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X