Das setzen von environment-Variablen in pre-build-event und mithilfe bei der Kompilierung Schritt

In Visual Studio 2003, bin ich versucht, eine Umgebungsvariable festlegen, die in der pre-build-Ereignis wird dann in der Zusammenstellung Schritt, aber der Wert scheint nicht weitergegeben werden. Zum Beispiel, wenn die pre-build-Ereignis enthält diese (entweder direkt oder in einer batch-Datei):

set MY_LIB_VERSION=1.0.0

und AdditionalIncludeDirectories hat:

c:\path\to\library\my_lib_v$(MY_LIB_VERSION)\include

dann würde ich erwarten, dass die Zusammenstellung funktionieren, wenn der my_lib_v1.0.0 Verzeichnis vorhanden ist. Aber stattdessen bekomme ich

c:\path\to\prog\my_prog.c(22) : fatal error C1083: Cannot open include file: 'my_lib.h' 
Projekt : Warnung PRJ0018 : Die folgenden environment-Variablen konnten nicht gefunden werden: 
$(MY_LIB_VERSION) 

Ich folgern, dass die Umgebungsvariable in der pre-build-Ereignis ist daher nicht propagiert, um die Zusammenstellung Schritt, aber ich kann etwas vermissen.

Wie kann ich die Umgebungsvariable in der pre-build-event und verwenden Sie es in der Zusammenstellung Schritt?

(Alternativ jede andere sinnvolle Möglichkeiten der Definition einer Bibliothek version einmal und verwenden Sie es mehrmals für AdditionalIncludeDirectories und AdditionalLibraryDirectories wäre genau so gut.)


Update: ich landete Lösung unseres Problems in einer anderen Weise. Wir verwenden Subversion, und richten Sie die svn:externals - Eigenschaft auf ein Unterverzeichnis des Projekts Quelle genannt dependencies, so dass ein checkout des Projektes zusätzlich check-out <svn_path>\libraries\my_lib_v1.0.0 und nennen es dependencies\my_lib in der Arbeitskopie. Dann den Projekt-Einstellungen finden Sie dependencies\my_lib\include und dergleichen. Die Aktualisierung auf version 1.0.1 my_lib ist dann einfach eine Sache der Bearbeitung der svn:externals Eigenschaft-den code-und Projekt-Einstellungen nicht ändern müssen.

Wie von Windows 7 (so scheint es) gibt es den Befehl SETX zum speichern von Umgebungsvariablen beharrlich. Quelle: ss64.com/nt/setx.html

InformationsquelleAutor Paul Stephenson | 2009-01-07

Schreibe einen Kommentar