Frage

Ich habe seit vielen vielen Jahren machen und Makefiles verwenden, und obwohl das Konzept Sound ist, hat die Umsetzung etwas zu wünschen übrig.

Hat jemand gefunden keine gute Alternativen zu, dass nicht machen Sie verkomplizieren das Problem?

War es hilfreich?

Lösung

Besuche SCons . Zum Beispiel Doom 3 und Blender machen Gebrauch davon.

Andere Tipps

Ich habe viele Freunde, die von CMake für Cross-Plattform-Entwicklung schwören:

http://www.cmake.org/

Es ist das Build-System verwendet für VTK (unter anderem), die eine C ++ Bibliothek mit Cross- Plattform Python, Tcl und Java-Bindungen. Ich denke, es ist wahrscheinlich die am wenigsten komplizierte Sache, die Sie mit, dass viele Möglichkeiten finden werden.

Sie können immer versuchen, den Standard Autotools . Automake-Dateien sind recht einfach zusammen zu stellen, wenn Sie nur auf Unix laufen und wenn Sie halten Sie sich an C / C ++. Integration ist komplizierter, und Autotools ist bei weitem nicht der einfachste System überhaupt.

Einige der GNOME-Projekte migrieren wurden waf .

Es ist Python-basierte, wie Scons, sondern auch Standalone -. So eher als andere Entwickler benötigen, um Ihr Lieblings-Build-Tool installiert haben, müssen Sie nur den Standalone-Build-Skript in Ihr Projekt kopieren

Ich empfehle, mit Rake . Es ist das einfachste Werkzeug, das ich gefunden habe.

Weitere gute Werkzeuge, die ich verwendet habe, obwohl, wenn Rubin ist nicht Ihr Ding ist, sind:

doit ist ein Python-Tool. Es basiert auf den Konzepten von Build-Tool, sondern allgemeinere.

  • Sie können festlegen, wie eine Aufgabe / Regel ist up-to-date (nicht nur Zeitstempel überprüft, Zieldateien sind nicht erforderlich)
  • Abhängigkeiten können dynamisch durch andere Aufgaben berechnet werden
  • Aufgabe Aktionen können Python-Funktionen oder Shell-Befehle werden

Beachten Sie die ninja Build-Tool (v1.8.2 September 2017), die von tup und redo .

Der Build-Datei-Generator cmake (zB für Unix Makefiles, Visual Studio, XCode, Eclipse-CDT, ...) kann auch seit Version 2.8.8 (April 2012) und, afaik ninja Build-Dateien erzeugen, ninja ist nun auch das Standard-Build-Tool von cmake verwendet.

Es sollte das make Werkzeug zu übertreffen (bessere Verfolgung von Abhängigkeiten und wird auch parallelisiert).

cmake ist ein bereits etabliertes Werkzeug. Sie können jederzeit später die Build-Tool-Dateien ohne Änderung der Konfiguration wählen. Also, wenn eine bessere Build in der Zukunft entwickelt wird, die durch cmake unterstützt werden Sie bequem schalten können.

Beachten Sie, dass für C / C ++ Verbesserung der Übersetzungszeit manchmal begrenzt, da der Header durch den Präprozessor enthalten (insbesondere bei Kopf nur Libs verwenden, zum Beispiel boost & Eigen ), die hoffentlich durch den Vorschlag ersetzt werden < a href = "https://stackoverflow.com/questions/3596147/modules-in-c11"> Module (in einer technischen Überprüfung von c ++ 11 oder schließlich in c ++ 1J). Sehen Sie sich diese Präsentation rel="nofollow für mehr Details zu diesem Thema.

Ich schrieb ein Werkzeug Sake genannt, die Make-Datei-like zu machen versucht zu schreiben Dinge sehr leicht zu lesen und schreiben.

Es hängt Art auf, was Sie zu tun versuchen. Wenn alle Sie wollen, ist Make-Stil Ziel Abhängigkeiten und Befehlsaufruf, dann machen Sie eigentlich eine der besseren Tools für die Aufgabe ist. :-) Rake ist sehr schön, kann aber für einige einfache Fälle ungeschickt sein. Ant ist natürlich Ausführlichkeit Stadt, aber es hat eine bessere Unterstützung für den Aufbau von Java-ähnlichen Sprachen (Scala und Groovy enthielten). Auch Ant ist verfügbar überall . Das ist der Hauptgrund, warum ich es verwenden. Weil es konsequent auf Windows funktioniert, ist es eigentlich noch mehr Cross-Plattform als machen.

Wenn Sie Abhängigkeitsmanagement für Java-Bibliotheken wie wollen, ist Maven die kanonische Wahl, aber ich persönlich mag Buildr viel besser. Es ist schneller und viel einfacher zu gestalten (es basiert auf Rake). Leider ist es nicht ganz so allgegenwärtig wie Maven nur noch.

ich immer noch lieber machen, nachdem eine Reihe von Alternativen in Betracht gezogen zu haben. Wenn Sie automatisch generierten Abhängigkeiten entweder über den Compiler oder so etwas wie fastdep gibt es nicht viel zu tun. Insbesondere mag ich nicht mein Build-Skript zur Umsetzung Sprache gebunden zu sein, und ich weiß nicht, wie Sachen in XML zu schreiben, als lesbare Alternativen zur Verfügung stehen. Ein Tool, das einen allgemeinen Zweck Sprache aussetzen hat Verdienst zwar, aber noch eine andere interpretierte Sprache nicht (afaik). Was mit Make falsch? könnte Ihre Sicht ansprechen zu weg von machen.

/ Allan

Rubys make System Rake genannt: http://rake.rubyforge.org/

Sieht recht vielversprechend aus.

Es gibt immer Ant: http://ant.apache.org , die ich persönlich horrende finden. Es ist der de-facto-Standard für Java-Entwicklung, aber.

Ich bin mir nicht sicher, ob Sie die richtige Frage stellen hier.

Sind Sie nach einem vereinfachten machen? In diesem Fall müssen Sie jemanden dazu bringen, die mit Make sehr vertraut ist, eine Reihe von (M | m) zu erstellen. Akefiles, die Ihr Problem vereinfachen

Oder wollen Sie auf die zugrunde liegende Technologie suchen? Sind Sie wollen wir eine Design-by-Contract Art Architektur erzwingen, die in, und erzwungen gebaut wird, das Code-Design? Oder vielleicht, die Sprache selbst, z.B. Ada und ihr Konzept der Spezifikationen (Schnittstellen) und Körper (Implementierungen)?

In welche Richtung Sie nach auf jeden Fall die möglichen Ergebnisse einer solchen Frage beeinflussen?

Grundsätzlich neue Wege der Bausysteme aus nur diejenigen Komponenten, die wirklich gegen die Einführung neuer Technologien verändert haben, die solche Mechanismen eingebaut durch Design haben.

Leider ist es keine direkte Antwort. Ich wollte nur versuchen, und Sie, welchen Weg Sie wollten dem Kopf nach unten.

erhalten bewerten

prost,

Rob

FlowTracer von RTDA ist eine gute Wahl, die ich in einer großen Maßstab Umgebung kommerziell verwendet gesehen (Zehntausende von Arbeitsplätzen): http://www.rtda.com/flowtracer-design-flow-infrastructure-software

Es hat eine GUI, die die Abhängigkeitsgraphen mit farbcodierten Boxen für Arbeitsplätze und Ovalen für Dateien zeigt. Wenn die Anzahl der Arbeitsplätze und Dateien hoch wird, ein GUI-basiertes Tool wie FlowTracer ist so ziemlich wesentlich.

Die Ersteinrichtung Kosten sind höher als zu machen. Es gibt eine Lernkurve für die Einrichtung Ihres ersten Strömungs es zu benutzen. Danach, wird es schneller.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top