Ich denke darüber nach, SCons für ein neues Projekt zu verwenden. Es sieht wirklich gut aus, obwohl ich VariantDir
ziemlich verwirrend finde.
Ich habe ein einfaches Projekt mit einer Handvoll C-Quelldateien in einem Verzeichnis, und ich möchte "normal" und im "Profil" -Modus erstellen - mit zwei verschiedenen Optionen für gcc. Ich möchte, dass die Ausgaben in das normale / und das Profil / Verzeichnis gehen.
Zum Testen habe ich auf eine einzige Quelldatei, t.c, zurückgesetzt, in der main()
enthalten ist. Meine SConstruct
-Datei befindet sich im selben Verzeichnis und sieht folgendermaßen aus:
Wenn ich Scons starte, erwarte ich, dass t.o und t.exe in release / gesetzt werden, aber sie werden in das aktuelle Verzeichnis gestellt. Und ich kann es überhaupt nicht mit den 3 Profillinien unkommentiert ausführen - wenn ich das tue, erhalte ich diesen Fehler:
scons: *** Zwei Umgebungen mit verschiedenen Aktionen wurden für dasselbe Ziel angegeben: t.o
Grundsätzlich bin ich nicht sicher, warum meine Aufrufe von VariantDir () Scons nicht sagen, die Ausgabe in das angegebene Ausgabeverzeichnis, release
, zu stellen.
(Ich habe ein gutes Stück in den Dokumenten und Newsgroups gelesen, aber nichts, was diese Frage beantwortet. Der nächste, dem ich gekommen bin, ist Seite , die eine ähnliche Sache beschreibt, aber es beinhaltet ein separates Verzeichnis src / und zwei separate scons-Dateien und das Importieren / Exportieren von Variablen zwischen ihnen. Das scheint nicht angenehm.)
Ja, VariantDir ist in scons verwirrend. Obwohl nicht gut beworben, können Sie sowohl SConstruct als auch SConscript in dasselbe Verzeichnis einfügen, indem Sie das aktuelle Verzeichnis als Quellverzeichnis verwenden
%Vor%und
%Vor%Ich habe noch nie einen Weg gefunden, die Verwendung von zwei Dateien zu vermeiden, während ich versucht, das abweichende Verzeichnis zu verstehen:)
Ich konnte mithilfe dieses Aufrufs Binärdateien in einem Build-Verzeichnis trennen:
%Vor%Wenn Sie Binärdateien zwei Ebenen tiefer in ein Verzeichnis einfügen möchten, tun Sie Folgendes:
%Vor% Geben Sie im Grunde den Parameter src_dir
als Pfad von Ihrem Build-Verzeichnis zurück zu Ihrem Quellverzeichnis an.
Als Ссылка sagte,
%Vor%Beachten Sie, dass Sie, wenn Sie keine SConscript-Datei im Unterverzeichnis src verwenden, angeben müssen, dass das Programm aus der Datei build / hello.c erstellt werden muss, die SCons im Unterverzeichnis build duplizieren.
wenn ich es mit scons
unter Linux starte.
Ich denke, es würde auch auf Win32 funktionieren