Frage

Ich suche ein Tool, das Makefile für ein C/C++-Projekt für verschiedene Compiler (gcc, Microsoft VC++, Borland usw.) und verschiedene Plattformen (Win, Linux, Mac) generieren kann.

War es hilfreich?

Lösung

Weitere Vorschläge, die Sie vielleicht berücksichtigen sollten:

  • Scons ist eine plattform- und compilerübergreifende Build-Bibliothek, die Python-Scruipting für die Build-Systeme verwendet.Wird in einer Vielzahl großer Projekte eingesetzt und leistet sehr gute Dienste.

  • Wenn Sie Qt verwenden, QMake ist auch ein schönes Build-System.

  • CMake ist auch ziemlich süß.

  • Endlich, Wenn alle Stricke reißen...

Andere Tipps

Hast du es versucht Automatischer Makefile-Generator?

Es unterstützt die folgenden Compiler:

Borland 3.1 
Borland 5.0 
Borland 5.0, 16 bit 
Borland 5.5 
Borland 5.6 
Borland 5.8 
CC 
Gnu g++ 
Gnu g++, dynamic library 
Intel 5, 6, 7 for Linux 
Intel 5, 6, 7 for Linux, dynamic library 
Intel 5, 6, 7 for windows 
Intel 8,9,10 for Linux 
Intel 8,9,10 for Linux, dynamic library 
Intel 8,9 for windows 
Intel 10 for windows 
Visual C++ 5 
Visual C++ 6, 7, 7.1 
Visual C++ 8 
Open Watcom 
Watcom 10A 
Watcom 10A, 16 bit 

Ich habe verwendet Bakefile schon einmal mit einigem Erfolg.Es ist ziemlich einfach und scheint gut zu funktionieren.

CMake ist das einzige Tool, das tatsächlich echte Visual Studio-Projekte generieren kann (d. h.nicht „Makefile“-Projekte, die ein externes Tool aufrufen), und das die Projekte automatisch neu erstellt, wenn sich die Build-Eingabedatei (CMakeLists.txt) ändert.

Leistungsprobleme bei SCons sind wohlbekannt und ein ausführlich diskutiertes Thema auf den SCons-Mailinglisten.

Ich würde dafür stimmen OMake.Es behebt alle Beschwerden, die ich mit GNU make hatte:

  • es ist eine vollwertige Sprache.
  • verwendet MD5 anstelle von Zeitstempeln.
  • stellt eine minimale Shell bereit, die die nützlichsten Unix-Befehle auf allen Plattformen implementiert:finden, sed, awk, etc...
  • Funktioniert entweder mit Pfadnamen im Unix- oder DOS-Stil.
  • ausführlich dokumentiert.
  • unterstützt parallele Builds.
  • schnell.

Die automatische Generierung von (M|m)akefiles macht mir Sorgen darüber, was Sie hier tun wollen.

Verstehen Sie, was sich unter der Decke abspielt, wenn Sie „make“ eingeben?Oder gmake?Ich frage nur, denn wenn Sie dies nicht tun, wenn etwas kaputt geht, beispielsweise wenn neue Codeänderungen nicht in den Build integriert werden, werden Sie Schwierigkeiten haben, das Geschehene zu verarbeiten.

Um mit dem Verständnis von „make“ zu beginnen, kann ich vorschlagen, „zu lesen“Verwalten von Projekten mit GNU Make" von Robert Mecklenberg.In den ersten Kapiteln wird erläutert, wie make funktioniert.Sich darüber im Klaren zu sein, dass make eine Rückwärtsverkettung ist, ist eines der größten Dinge, die Sie tun können.

Wenn Sie dies nicht tun und Ihr System zu funktionieren scheint, dann werden Sie, um den Begriff der Pragmatischen Programmierer zu verwenden, „Programmierung durch Zufall". (-:

Übrigens: Tolle Artikel sind auf ihrer Website verfügbar!Und ich habe nichts mit ihnen zu tun.YMMV.Yada-yada...

Ich werde auch CMake unterstützen.Ich verwende es schon seit einiger Zeit für ein Multiplattform-Projekt und bin sehr zufrieden damit.

Eine zu berücksichtigende Frage ist: Möchten Sie einen „Makefile“-Ersteller oder ein Ersatz-Build-System?Das Problem bei Ersatz-Build-Systemen besteht darin, dass Sie normalerweise keine gute IDE-Integration für Plattformen erhalten, deren Benutzer dies erwarten (Visual C++).Wenn Sie einen Makefile-Ersteller anstelle eines Ersatz-Build-Systems wünschen, werfen Sie einen Blick auf MPC.Es ist kostenlos und Open Source.

Eine neue Ergänzung zur Liste der Markenersetzungen ist waf.Aus persönlicher Erfahrung macht SCONS seine Arbeit ziemlich gut.

Ich weiß nicht, ob Sie noch Interesse an dieser Frage haben.Ich arbeite an einer ähnlichen Makefile-Autogenerator-Projektion namens CodeMate, entwickelt mit Ruby.Vielleicht ist es im Moment noch nicht so ausgereift für große Anwendungen, aber ich werde weiter daran arbeiten, es besser zu machen.Benutzer sollten keine Konfigurationsdatei bearbeiten müssen, um die Software zu erstellen, oder zumindest soll dies der Fall sein.Die Lernkurve sollte minimiert werden.

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