Ich denke darüber nach, 10 für ein neues Projekt zu verwenden. Es sieht wirklich gut aus, obwohl ich VariantDir
ziemlich verwirrend finde.Warum setzt SCons VariantDir() keine Ausgabe in das angegebene Verzeichnis?
Ich habe ein einfaches Projekt mit einer Handvoll C-Quelldateien in einem Verzeichnis, und ich möchte im "normalen" und im "Profil" -Modus erstellen - mit zwei verschiedenen Optionen auf gcc. Ich möchte, dass die Ausgaben in den normalen/und Profil/Verzeichnis gehen.
Zum Testen habe ich zurück zu nur einer einzigen Quelldatei, t.c, die eine main()
enthält. Meine SConstruct
Datei ist im selben Verzeichnis, und sieht wie folgt aus:
normal = DefaultEnvironment(tools=['mingw'], CCFLAGS = '-O2')
normal.VariantDir('release', '.', duplicate=0)
normal.Program('t', ['t.c'])
#profile = normal.Clone(CCFLAGS='-O2 -pg', LINKFLAGS = '-pg')
#profile.VariantDir('profile', '.', duplicate=0)
#profile.Program('t', ['t.c'])
Als ich scons laufen, ich bin es erwartet zu setzen und t.exe in Release /, aber es setzt sie im aktuellen Verzeichnis . Und ich kann es überhaupt nicht mit den 3 Profillinien unkommentiert ausführen - wenn ich das tue, bekomme ich diesen Fehler:
scons: *** Zwei Umgebungen mit verschiedenen Aktionen wurden für das gleiche Ziel angegeben: bis
Grundsätzlich bin ich mir nicht sicher, warum meine VariantDir() - Aufrufe Scons nicht sagen, die Ausgabe in das angegebene Ausgabeverzeichnis zu setzen, release
.
(Ich habe ein wenig in den Dokumenten und Newsgroups gelesen, aber nichts, was diese Frage beantwortet. Die nächste, die ich gekommen bin, ist this page, die eine ähnliche Sache beschreibt, aber es umfasst ein separates src/Verzeichnis und zwei separate scons-Dateien, und Import/Export von Variablen zwischen ihnen. Das scheint nicht angenehm.)
Ja funktionieren würde, das ist der einzig relevante Punkt, wenn nicht SConscript verwendet wird. –