Einfaches Makefile-Generierungsprogramm?

7

Kennt jemand ein Werkzeug, das ein Makefile erzeugt, indem es ein Verzeichnis nach Quelldateien scannt?

Es kann naiv sein:

  • keine Notwendigkeit, externe Abhängigkeiten zu erkennen
  • Verwenden Sie die Standardeinstellungen für Compiler / Linker
StackedCrooked 26.08.2010, 15:32
quelle

6 Antworten

8

Sie können ein Makefile schreiben, das dies für Sie tut:

%Vor%

Platziere das einfach im Root-Verzeichnis deiner Quellhierarchie und führe make aus (du brauchst GNU Make ) damit dies funktioniert).

(Beachte, dass ich nicht fließend in Makefile ish bin, also kann das vielleicht einfacher gemacht werden.)

    
Job 26.08.2010, 15:58
quelle
7

CMake erledigt das und erstellt sogar Makefiles und Visual Studio-Projekte. Ссылка

Sie müssen lediglich eine CMakeLists.txt-Datei mit den folgenden Zeilen erstellen:

%Vor%

Gehe dann in ein sauberes Verzeichnis und tippe:

%Vor%

Das wird Makefiles in diesem sauberen Build-Verzeichnis erstellen.

    
tibur 26.08.2010 15:43
quelle
5

Das würde ich für ein einfaches Projekt verwenden:

%Vor%

Die einzige Einschränkung besteht darin, dass Sie eine ausführbare Datei namens myApp erstellen. Dann sollte eine der Quelldateien myApp.cpp genannt werden (wo ich main).

    
Martin York 26.08.2010 17:21
quelle
3

Es gibt ein sehr altes Skript namens 'makedepend', mit dem man sehr einfache Makefiles erstellt hat. Ich bin seitdem für fast alles zu CMake gewechselt.

Hier ist der Wiki-Artikel Ссылка , notieren Sie sich die Liste der Alternativen unten, einschließlich depcomp in automake, und die -M Flagge in gcc.

EDIT: Wie jemand in einer anderen Frage auf mich hingewiesen hat, erzeugt gcc -MM *.cpp > Makefile ein ziemlich nettes einfaches Makefile. Sie müssen nur Ihren CPPFLAGS und eine Regel für die Erstellung der gesamten Binärdatei ... voranstellen, die das folgende Format hat:

%Vor%     
jkerian 26.08.2010 15:38
quelle
1
  
  • keine Notwendigkeit, externe Abhängigkeiten zu erkennen
  •   
  • Verwenden Sie die Standardeinstellungen für Compiler / Linker
  •   

Warum Skript dann? Vorausgesetzt, alle Ihre Projektquelldateien sind *.cpp und im aktuellen Verzeichnis:

%Vor%

Das Makefile würde alle Quelldateien mit Standard-Compiler / Linker-Einstellungen in einer ausführbaren Datei erstellen, die nach dem Namen des aktuellen Verzeichnisses benannt ist.

Ansonsten empfehle ich den Leuten, SCons zu probieren, anstatt viel einfacher und intuitiver zu machen. Zusätzlicher Bonus, dass es keine Notwendigkeit gibt, manuell Code clean -Ziele zu codieren, Source / Header-Abhängigkeitsprüfung ist eingebaut, es ist nativ rekursiv und unterstützt korrekte Bibliotheken.

    
Dummy00001 26.08.2010 16:09
quelle
0

Wie in der verknüpften Diskussion , HWUT ist ein Werkzeug, das kann hübsche Makefiles generieren, nach Abhängigkeiten suchen und Dateien in Verzeichnisse einfügen, die Sie ihm mitteilen. Unter Windows müssen Sie MinGW und Ctags installieren. Unter Linux sind gcc und ctags am wahrscheinlichsten vorhanden. Es ist OpenSource und frei zu benutzen.

Insbesondere, wenn Unit-Tests für einige bereits vorhandene Module eines größeren Projekts mit schlechter Kohäsion generiert werden, spart Ihnen dieser features leicht Stunden oder sogar Tage.

    
Frank-Rene Schäfer 10.09.2015 10:50
quelle

Tags und Links