Das Festlegen von Umgebungsvariablen in cmd hat keine Auswirkung

Das Festlegen von Umgebungsvariablen in cmd hat keine Auswirkung

Ich versuche, Pfade zu VS-Tools einzurichten, um sie in der Befehlszeile auszuführen, wie inhttps://msdn.microsoft.com/en-us/library/x4d2c09s.aspx

Ich führe vcvarsall x64die Eingabeaufforderung mit erhöhten Rechten aus und überprüfe den Inhalt der INCLUDEVariablen:

Bildbeschreibung hier eingeben

Dann schließe ich die Eingabeaufforderung, öffne sie erneut und überprüfe die INCLUDEVariable:

Bildbeschreibung hier eingeben

Wie Sie sehen, gingen die Änderungen verloren, als ich CMD geschlossen habe. Wie stelle ich sicher, dass sie in die Systemumgebung gelangen?

Ich verwende Win 8.1, falls das wichtig ist.

Antwort1

Dies liegt daran, dass die ausgeführten Batchdateien Setzum Festlegen der Umgebungsvariablen verwendet werden ( C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\bin\amd64\vcvars64.batdas ist das, was beim Ausführen ausgeführt wird vcvarsall x64).

Legt jedoch Setnur Variablen für die aktuelle Befehlszeilensitzung fest. Sie müssen verwenden, Setxdamit es zwischen Befehlszeilensitzungen „haften bleibt“.

Weitere Informationen finden Sie in diesen anderen Fragen und Antworten von SU:

Nach Kommentaren bearbeiten:

„Aber die festgelegten Befehle waren im Standardskript“

VCVarsAll soll ausgeführt werden, um die Umgebung für den einzelnen Build/die einzelne Aktion einzurichten, die Sie gerade durchführen, und nicht, um sie dauerhaft festzulegen.

Visual Studio installiert spezielle „Eingabeaufforderungs“-Einträge für den Zugriff auf die Tools (aus Ihrem Link: „… und wählen Sie dann eine der Eingabeaufforderungen des nativen oder des übergreifenden Tools.“), und diese speziellen Eingabeaufforderungsverknüpfungen führen eine/die Batchdatei aus, um sicherzustellen, dass alles richtig eingestellt ist, wenn Sie diese Verknüpfungen verwenden.

Sie können diese Verknüpfungen mit Ihren eigenen replizieren ...

Erstellen Sie eine neue Verknüpfung zu cmd /k "C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\vcvarsall.bat" x64, die die Batchdatei ausführt (mit x64 als Umgebungsoption), und lassen Sie dann das Befehlszeilenfenster geöffnet.

Verwenden Sie dann diese Verknüpfung, um die Eingabeaufforderung zu öffnen, wenn Sie die Tools verwenden möchten.

Antwort2

Ja, Sie können die Umgebung in eine Datei extrahieren:

cmd /C "C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\VC\Auxiliary\Build\vcvars64.bat" && set > d:\t.txt

Dann können Sie diese Datei direkt in das Makefile einbinden oder eine andere Option verwenden, die Ihren Anforderungen entspricht.

verwandte Informationen