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 :: Die Artikel ::  Build-Systeme Teil 3: SCons  
Gehen Sie zu Seite Zurück  1, 2, 3, 4
  Zeige alle Beiträge auf einer Seite
Auf Beitrag antworten
Autor Nachricht
GPC
Moderator

Benutzerprofil
Anmeldungsdatum: 11.07.2004
Beiträge: 6290
Beitrag GPC Moderator 00:26:38 20.01.2008   Titel:              Zitieren

Ehrlich gesagt weiß ich nicht, wie man dein Problem SCons-intern beheben kann, da SCons ja keine Reihenfolge für die Builds definiert... außer per Depends-Funktion, aber das ist nicht so das richtige Mittel.

Ich würde einfach ein Skript schreiben, welches zuerst die vier Libs baut und dann die binary.


Zuletzt bearbeitet von GPC am 00:28:31 20.01.2008, insgesamt 1-mal bearbeitet
BugJoe
Mitglied

Benutzerprofil
Anmeldungsdatum: 18.11.2002
Beiträge: 310
Beitrag BugJoe Mitglied 16:24:31 21.01.2008   Titel:              Zitieren

Danke für die Antwort.

Wenn es wirklich nicht anders geht werd ich das wohl tun müssen, auch wenn ich stark gehoft habe dass genau diese Arbeit auch intelligent von SCons erledigt wird. Gerade der fünfte Beitrag von __HIRSCH_H__ hat sich in meinen Ohren nämlich so angehört als wenn in seinem Projekt der "Buildaufbau" sehr ähnlich ist wie in meinem Projekt (wenn nicht sogar noch komplexer) und SCons die Abhängigkeiten unter den verschiedenen Biblotheken aufdröseln könnte und genau weiß was es zuerst kompilieren muss.
__HIRSCH_H__
Mitglied

Benutzerprofil
Anmeldungsdatum: 16.05.2006
Beiträge: 63
Beitrag __HIRSCH_H__ Mitglied 16:47:24 21.01.2008   Titel:              Zitieren

BugJoe schrieb:
Danke für die Antwort.

Wenn es wirklich nicht anders geht werd ich das wohl tun müssen, auch wenn ich stark gehoft habe dass genau diese Arbeit auch intelligent von SCons erledigt wird. Gerade der fünfte Beitrag von __HIRSCH_H__ hat sich in meinen Ohren nämlich so angehört als wenn in seinem Projekt der "Buildaufbau" sehr ähnlich ist wie in meinem Projekt (wenn nicht sogar noch komplexer) und SCons die Abhängigkeiten unter den verschiedenen Biblotheken aufdröseln könnte und genau weiß was es zuerst kompilieren muss.

Wenn ich mehrere voneinander abhängige Bibliotheken oder Programme baue, mach ich das meistens so, dass ich den Rückgabewert der SharedLibrary Funktion an die entsprechende Program oder SharedLibrary Funktion der abhängigen Bibliothek übergebe.
Beispiel:

Code:
lib1 = SharedLibrary(myFiles)
lib2 = SharedLibrary([otherFiles, lib1])
prog = Program([moreFiles, lib2])
Code:
lib1 = SharedLibrary(myFiles)
lib2 = SharedLibrary([otherFiles, lib1])
prog = Program([moreFiles, lib2])
Code:
lib1 = SharedLibrary(myFiles)
lib2 = SharedLibrary([otherFiles, lib1])
prog = Program([moreFiles, lib2])


Dann bestimmt scons die Abhängigkeit korrekt.
Tip: Du kannst die lib/prog objekte aus den Unterverzeichnissen mit Return('lib1') zurückgeben.

Ich hoffe es hilft dir weiter und du kannst das Konzept in deinen generischen Ansatz einbauen. Wenn ich scons scripte schreibe sind die eigentlich immer massgeschneidert und ziemlich naiv runtergehackt (KISS-Prinzip).
BugJoe
Mitglied

Benutzerprofil
Anmeldungsdatum: 18.11.2002
Beiträge: 310
Beitrag BugJoe Mitglied 19:18:03 21.01.2008   Titel:              Zitieren

Ja, vielen Dank für die Antwort. Werd ich morgen gleich mal ausprobieren. Aber das hört sich sehr gut an :)
checkHeader
Unregistrierter




Beitrag checkHeader Unregistrierter 17:27:00 26.07.2008   Titel:              Zitieren

Sehr schöner Artikel. :live:

Aber ich hab ein Problem mit boost und CheckCXXHeader() vielleicht hat von euch einer eine Idee, meine bisherige google-Suche war nicht erfolgreich.

Code:
if not conf.CheckCXXHeader('boost/test/unit_test.hpp'):
        print 'Could not find boost/test/unit_test.hpp . Please install boost (www.boost.org)'
        Exit(1)
Code:
if not conf.CheckCXXHeader('boost/test/unit_test.hpp'):
print 'Could not find boost/test/unit_test.hpp . Please install boost (www.boost.org)'
Exit(1)
Code:
if not conf.CheckCXXHeader('boost/test/unit_test.hpp'):
        print 'Could not find boost/test/unit_test.hpp . Please install boost (www.boost.org)'
        Exit(1)


Boost ist installiert und die Header liegen auch unter /usr/include/boost/... wenn man das Exit(1) raus nimmt kompiliert auch alles.

Was ist falsch an der Prüfung, bzw. was mache ich falsch an der Stelle?
Muss ich noch die System-Include-Verzeichnisse irgendwo angeben?

Danke
__HIRSCH_H__
Mitglied

Benutzerprofil
Anmeldungsdatum: 16.05.2006
Beiträge: 63
Beitrag __HIRSCH_H__ Mitglied 08:11:45 28.07.2008   Titel:              Zitieren

Was steht denn in der Datei config.log? Da sollte drinstehen welches Kommando aufgerufen wurde und welche Fehlermeldung zum Abbruch geführt hat.
checkHeader
Unregistrierter




Beitrag checkHeader Unregistrierter 11:35:29 31.07.2008   Titel:              Zitieren

Merkwürdigerweise versuchte er eine Datei zu kompilieren innerhalb der Tests die nicht existierte. Die temporären Dateien und Verzeichnisse von scons löschen, danach neu ausführen und es ging.

Versteh ich zwar nicht aber Danke :)
C/C++ Forum :: Die Artikel ::  Build-Systeme Teil 3: SCons  
Gehen Sie zu Seite Zurück  1, 2, 3, 4
Auf Beitrag antworten

Zeige alle Beiträge auf einer Seite




Nächstes Thema anzeigen
Vorheriges Thema anzeigen
Sie können keine 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.