Windows 7 AMD64, PATH [gelöst]
-
Also.
Boost.
Dumme Boost.
Hat keinen "AMD64" Tag im Filenamen.Kann man es - trotzdem die DLLs gleich heissen - irgendwie hinbekommen, dass 32 Bit Prozesse die 32 Bit DLLs im Pfad haben, und 64 Bit Prozesse die 64 Bit DLLs?
Ich hatte daran gedacht einfach
PATH=lalalala...;c:\boost\bin\%PROCESSOR_ARCHTICTURE%
zu machen. Geht bloss leider nicht, denn wenn ich ein 32 Bit Command Prompt aufmache und "set" eingebe, dann steht da zwar PROCESSOR_ARCHTICTURE=x86, aber bei PATH steht trotzdem AMD64 drin. Das "erweitern" von Umgebungsvariablen im Pfad wird wohl anscheinend an nur einer Stelle gemacht, und dann für 64 Bit und 32 Bit Prozesse der gleiche, bereits erweiterte Pfad verwendet.
Microsoft macht es sich da ja hübsch einfach, mit dem File-System Redirector (system32 <-> SysWOW64). Bloss wie kann ich das gleiche machen, allerdings ohne die DLLs ins system32/ SysWOW64 Verzeichnis kopieren zu müssen?
-
ich hab keine Ahnung, ob das hilft:
startet man die cmd mit dem Schalter "/V:ON" gibt es die verzögerte Erweiterung von Umgebungsvariablen.
Dazu einfach ! statt % verwendenDiese Variablen werden erst beim lesen ersetzt und nicht sofort
gern genutztes Beispiel aus der set-"Doku":
set LISTE= for %i in (*) do set LISTE=!LISTE! %i echo %LISTE%
ob das aber auch außerhalb der cmd funktioniert, weiß ich nicht
-
Habs grad probiert:
Mit !PROCESSOR_ARCHITECTURE! als Teil der PATH Variable wird !PROCESSOR_ARCHITECTURE! garnicht "erweitert", sondern bleibt 1:1 so stehen. Geht also auch nicht.Trotzdem danke.
-
Hihi.
Problem gelöst.Man trägt einfach beide Pfade in PATH ein, und Windows sucht sich die passende DLL selbst raus. Hätte mir eher erwartet dass ich nen Fehler bekomme vonwegen "64 Bit Image kann nicht in 32 Bit Prozess geladen werden" (bzw. umgekehrt). Aber Windows sucht anscheinend netterweise weiter, ob nicht im PATH noch irgendwo eine "passende" DLL liegt.