Eine 'test.cpp' wird compiliert zur 'test.o'.
Wenn die 'test.o' gelinkt wird es eine 'test.exe'
Das ist ein Einfachst-Beispiel beim MinGW.
Wenn es ein wenig umfangreicher wird kannst du auch mehrere '.o' Dateien zu einem Projekt zusammen linken. Das Ergebnis muss auch nicht 'test.exe' heissen. Da kannst du auch andere Namen mit der gleichen Endung '.exe' wählen.
Wenn eine der '.cpp' in einem grösseren Projekt nicht geändert wurde, brauchen nur die geänderten vor einem gemeinsamen Linken neu kompiliert werden.
Soweit eine Kurzfassung. Da kann man noch ausführlicher was dazu schreiben.
Zbei einem Shellscript bricht MinGW bei error ab...
bei nem Makefile auch...
wozu den Rückgabewert überprüfen ? ich sehe es doch dann in der Shell ?!?
Wenn im Skript Hunderte Dateien gebaut werden, übersiehst Du die Fehlermeldung von MinGW. MinGW bricht bei einem Fehler ab, aber Dein Skript nicht. Dein Skript wird weiter abgearbeitet, egal was passiert. Wenn, dann müsste man bei jedem Aufruf des Compilers, Linkers usw. so was machen:
Code:
gcc -c blabla.c -o blabla.o || error
Code:
gcc -c blabla.c -o blabla.o || error
Code:
gcc -c blabla.c -o blabla.o || error
und error ist eine Funktion die exit aufruft o.ä. Aber das ist ungut, weil man beim Schreiben des Skripts daran denken muss, überall || error dranzuhängen. (Mit meinem Lieblings-Editor gVim wäre es vielleicht kein Problem).
McMorf! schrieb:
wie würde ich das jetzt auf mehrere kerne aufteilen ?
Bei Deinem Makefile wird es wahrscheinlich nicht funktionieren, weil Du im Prinzip nur einen Compiler-Aufruf hast. Es geht mit dem Parameter -j{X}, wobei es eine (ungeschriebene?) Regel gibt, X solle Anzahl der Kerne mal zwei sein. Ich habe einen DualCore, also würde ich so aufrufen:
Code:
make -j4
Code:
make -j4
Code:
make -j4
Bei einem QuadCore so
Code:
make -j8
Code:
make -j8
Code:
make -j8
McMorf! schrieb:
und warum sollte das mit einem shellscript nicht gehen ? wird nicht letzten endes die aufgabe eh an MinGw übergeben ?
Das geht bestimmt, nur musst Du als Autor des Skripts die Sisyphos-Arbeit erledigen, manuell Threads erzeugen, die bestimmte Teile deines Projektes bauen usw.
Hi !
Ich habe noch eine Frage bezüglich makefiles...
Ich würde gerne wissen wie man die ausgabe eines Programms in eine Variable schreiben kann...
Sprich ich habe eine z.B hallo.exe die in der console nur hallo ausgibt...
diese würde ich gerne im makefile als variable angeben also so habe ich es versucht, funktioniert leider nicht:
Code:
VarHallo =´hallo.exe´
oder
VarHallo = @echo´hallo.exe´
Code:
VarHallo =´hallo.exe´
oder
VarHallo = @echo´hallo.exe´
Code:
VarHallo =´hallo.exe´
oder
VarHallo = @echo´hallo.exe´
also mir geht es darum die ausgabe von wx-config in eine variable umzuleiten sprich sowas wie:
Code:
WXCONFIG = ´wx-config --cxxflags --libs´
Code:
WXCONFIG = ´wx-config --cxxflags --libs´
Code:
WXCONFIG = ´wx-config --cxxflags --libs´
irgendwie habe ich keinen ansatz dafür gefunden...
würde mich sehr über eure Hilfe freuen !
Nächstes Thema anzeigen Vorheriges Thema anzeigen
Sie können Beiträge in dieses Forum schreiben. Sie können auf Beiträge in diesem Forum antworten. Sie können Ihre Beiträge in diesem Forum nicht bearbeiten. Sie können Ihre Beiträge in diesem Forum nicht löschen. Sie können an Umfragen in diesem Forum nicht mitmachen.
c++.de ist Teilnehmer des Partnerprogramms von Amazon Europe S.à.r.l. und Partner des Werbeprogramms, das zur Bereitstellung eines Mediums
für Websites konzipiert wurde, mittels dessen durch die Platzierung von Werbeanzeigen und Links zu amazon.de
Werbekostenerstattung verdient werden kann.
Die Vervielfältigung der auf den Seiten www.c-plusplus.de, www.c-plusplus.info, www.c-sar.de, www.c-plusplus.net und www.baeckmann.de
enthaltenen Informationen ohne eine schriftliche Genehmigung des Seitenbetreibers ist untersagt
(vgl. §4 Urheberrechtsgesetz). Die Nutzung und Änderung der vorgestellten Strukturen und Verfahren in
privaten und kommerziellen Softwareanwendungen ist ausdrücklich erlaubt, soweit keine Rechte Dritter verletzt werden.
Der Seitenbetreiber übernimmt keine Gewähr für die Funktion einzelner Beiträge oder Programmfragmente, insbesondere
übernimmt er keine Haftung für eventuelle aus dem Gebrauch entstehenden Folgeschäden.