ubuntuusers.de

Für diese Funktion musst du eingeloggt sein.

C/C++: Anleitung für Makefile und Parser

Status: Ungelöst | Ubuntu-Version: Nicht spezifiziert
Antworten |

Filius

Anmeldungsdatum:
3. Februar 2007

Beiträge: 28

Wohnort: Bayreuth

Hallo!

Mit C++ hab ich schon ein wenig Erfahrung. Nun mächte ich ein größeres Programm schreiben und statt der bisherigen statischen Vorgabe von argc und argv nun Linux-like die Parameter mittel - übergeben, also wie

./Programm -T 20 -d dateiname.txt


Kennt ihr einen Parser, den ich nur anpassen muss oder vielleicht eine Anleitung, wie ich so einen Parser schreibe?

Außerdem würde ich gern aufgrund der Vielzahl von header-files und damit verbundenen .o-Dateien ein Makefile erstellen anstatt jedes file einzeln mittel "g++ -c headerfile.cpp" aufzurufen. Kennt jemand von euch eine gute Anleitung, wie ich headerfiles schreibe?

Vielen Dank!

Filius

Spit

Anmeldungsdatum:
4. Oktober 2006

Beiträge: 737

Hi,

also Tutorials für Makefiles gibt es haufenweise, einfach mal googlen. Mir hat beim Einstieg folgendes geholfen: http://www.ijon.de/comp/tutorials/makefile.html.

MfG

Monos

Avatar von Monos

Anmeldungsdatum:
10. Januar 2008

Beiträge: 241

Wohnort: Aachen

Kennt ihr einen Parser, den ich nur anpassen muss oder vielleicht eine Anleitung, wie ich so einen Parser schreibe?

Es gibt sehr viele Libs, die so etwas unter anderem tun, ein einfaches Beispiel ist: http://tclap.sourceforge.net/

Aber auch die meisten C++-Frameworks liefern diese Funktionalität mit.

Filius hat geschrieben:

Nun mächte ich ein größeres Programm schreiben und (\,,,) Kennt jemand von euch eine gute Anleitung, wie ich headerfiles schreibe?

Das ist nicht Dein Ernst, oder? Du möchtest ein größeres Programm schreiben und dafür das Makefile selbst schreiben? Warum in aller Welt denn das? Für sowas wurden IDEs erfunden.

Falls Du GNOME benutzt, solltest Du Dir mal Anjuta anschauen.

Sicherlich ist es nicht schlecht, sich mit Syntax und Semantic des Makefiles auszukennen, aber dieses "from scratch" selbst zu schreiben, halte ich gerade für größere Projekte für Unsinn bzw. Blindleistung.

Monos

Filius

(Themenstarter)

Anmeldungsdatum:
3. Februar 2007

Beiträge: 28

Wohnort: Bayreuth

Oh, sorry, verschrieben; ☹ ich meinte Anleitung wie man makefiles erstellt, headerfiles kann ich sehr wohl erstellen

Marc_BlackJack_Rintsch Team-Icon

Ehemalige
Avatar von Marc_BlackJack_Rintsch

Anmeldungsdatum:
16. Juni 2006

Beiträge: 4676

Wohnort: Berlin

@Filius: Erstmal das übliche: Bitte nicht immer C und C++ zusammenwerfen, wenn man nur eines davon meint. Das sind verschiedene Sprachen.

Für Kommandozeilenargumente gibt's für C++ zum Beispiel Boost.Program_options.

@Monos: Andersherum: Warum um alles in der Welt möchte man den Build-Prozess von einer IDE abhängig machen!?

Monos

Avatar von Monos

Anmeldungsdatum:
10. Januar 2008

Beiträge: 241

Wohnort: Aachen

Marc 'BlackJack' Rintsch hat geschrieben:

@Monos: Andersherum: Warum um alles in der Welt möchte man den Build-Prozess von einer IDE abhängig machen!?

@Marc 'BlackJack' Rintsch: Abhängig? Wieso das? Anjuta bspw. erstellt ein ganz normales Makefile, dass natürlich auch ohne die IDE zu starten, ganz normal per Terminal und make erstellt werden kann.

Ansonsten hält Dich niemand davon ab, Dein Makefile selbst zu schreiben. Ich habe nur meine Meinung kundgetan und ich halte das manuelle Schreiben eines Makefiles für ein Softwareprojekt, dass eventuell schnell einige hundert Source-Files (in entsprechenden Unterverzeichnissen) und 20 Abhängigkeiten umfasst für absolute Blindleistung. Oder handelt es sich hier um ein Missverständnis was man unter "größer" versteht? 😈

Monos

Marc_BlackJack_Rintsch Team-Icon

Ehemalige
Avatar von Marc_BlackJack_Rintsch

Anmeldungsdatum:
16. Juni 2006

Beiträge: 4676

Wohnort: Berlin

Hm, man schreibt einfach eine Regel wie aus *.cpp-Dateien *.o-Dateien werden und ein Target, dass den g++ anweist die Abhängigkeiten aus dem Quelltext zu erzeugen (die -M*-Optionen) und benutzt dass dann im Makefile. So viel muss man da dann auch nicht selbst in die Datei schreiben.

audax

Avatar von audax

Anmeldungsdatum:
15. September 2006

Beiträge: 1253

*einwerf*

CMake nutzen!

BigChiller

Avatar von BigChiller

Anmeldungsdatum:
30. Juli 2007

Beiträge: 121

Mir hat damals das Tutorials Makefiles erstellen geholfen. Ich liebe Makefiles 😉

Um gleich einmal das Argument von Monos aufzunehmen, das stimmt so nicht. Makefiles sind gerade dazu da, um einem das Leben zu erleichtern. Wenn es "bei größeren Projekten" zu viel Aufwand wäre, müsste man sie nicht benutzen. Gerade durch das gezielte Setzen von Variablen kann man somit selbst nach einer gravierenden Änderung der Quellen das Makefile extrem schnell anpassen.

Ansonsten gibt es aber noch jeh nach Geschmack andere tools, die man benutzen kann, wenn make einem eindeutig zu aufwendig ist.

lilith2k3

Avatar von lilith2k3

Anmeldungsdatum:
14. Dezember 2006

Beiträge: 2999

Wohnort: OS

Ein bisschen was über Make gibt's auch im Buch Linux -das distributionsunabhängige Handbuch (frei verfügbar)

Antworten |