Hypercell ein ] Hypercell aus ] Zeige Navigation ] Verstecke Navigation ]
c++.de  
   
Forentreff 2012     
Bücher-Shop mit Amazon (Buchkategorien)C++ : Referenzen zu C++ : C++ Builder : Visual C++ : C# : Java : Spieleprogrammierung : Systemprogrammierung Linux : Software-Entwicklung : .NET : Compilertechnik : Algorithmen & Datenstrukturen : Objektorientierung : Entwurfsmuster : UML : eXtreme Programming : Scrum : Projektmanagement : Software-Testing : Datenbanken : Tom DeMarco : Dilbert : User Friendly
C/C++ Forum :: Compiler- und IDE-Forum ::  Frage zu Makefile für MINGW/GCC linker  
Gehen Sie zu Seite Zurück  1, 2, 3
  Zeige alle Beiträge auf einer Seite
Auf Beitrag antworten
Autor Nachricht
f.-th.
Unregistrierter




Beitrag f.-th. Unregistrierter 16:57:53 27.01.2012   Titel:              Zitieren

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.

MfG f.-th.
abc.w
Mitglied

Benutzerprofil
Anmeldungsdatum: 25.04.2008
Beiträge: 1364
Beitrag abc.w Mitglied 20:01:07 27.01.2012   Titel:   Re: Zum Thema mehrere Kerne            Zitieren

McMorf! schrieb:
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.

_________________
E = int * char^2
McMorf!
Unregistrierter




Beitrag McMorf! Unregistrierter 11:03:23 28.01.2012   Titel:   Dann erst mal danke !!!            Zitieren

Herzlichen Dank für die ganzen Antworten !

Ihr habt mir wirklich sehr weiter geholfen !

Mfg McMorf
McMorf!
Unregistrierter




Beitrag McMorf! Unregistrierter 12:35:17 06.02.2012   Titel:   noch eine Frage            Zitieren

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 !

Mfg McMorf
McMorf!
Unregistrierter




Beitrag McMorf! Unregistrierter 12:40:33 06.02.2012   Titel:   habs...            Zitieren

VAR =$(shell wx-config --cxxflags --libs)

Mfg McMorf
C/C++ Forum :: Compiler- und IDE-Forum ::  Frage zu Makefile für MINGW/GCC linker  
Gehen Sie zu Seite Zurück  1, 2, 3
Auf Beitrag antworten

Zeige alle Beiträge auf einer Seite




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.

Powered by phpBB © 2001, 2002 phpBB Group :: FI Theme

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.