gpt4 book ai didi

windows - Windows环境变量嵌套的限制?

转载 作者:可可西里 更新时间:2023-11-01 12:41:12 27 4
gpt4 key购买 nike

那么,Windows 环境变量的嵌套深度有限制吗?我做了很多开发工作,我正在尝试设置我的开发环境变量,其中很多变量相互嵌套,即。


GLEW=%THIRD_PARTY_ROOT%\GLEW
GLEW_1_5_5=%GLEW%\glew-1.5.5
GLEW_BIN_PATH=%GLEW_ROOT%\bin
GLEW_INCLUDE_PATH=%GLEW_ROOT%\include
GLEW_LIB_PATH=%GLEW_ROOT%\lib
GLEW_ROOT=%GLEW_1_5_5%

OSG=%THIRD_PARTY_ROOT%\OpenSceneGraph
OSG_2_8_3=%OSG%\OpenSceneGraph-2.8.3
OSG_BIN_PATH=%OSG_ROOT%\bin
OSG_INCLUDE_PATH=%OSG_ROOT%\include
OSG_LIB_PATH=%OSG_ROOT%\lib
OSG_ROOT=%OSG_2_8_3%

THIRD_PARTY_ROOT=C:\dev\third-party

但我费了好大劲才让它们真正正确地扩展。有一段时间,当我查看 set 的输出时,我只是得到看起来它们正在按顺序展开的内容,因此任何依赖于 foo_ROOT 的内容都没有正确展开。我尝试启用延迟扩展但没有帮助,但重新启动似乎......所以延迟扩展可能需要重新启动......

无论哪种方式,我的 PATH 变量中都有 GLEW_BIN_PATH 和 OSG_BIN_PATH,它们拒绝扩展。这真的很令人沮丧,因为 dll 驻留在那儿,当然我可以得到 evvvverything 来扩展......有什么想法吗?

编辑:我将它们放在 PATH 变量中:

[everything else....];%GLEW_BIN_PATH%;%OSG_BIN_PATH%

所以我没有看到阻止它们向外扩展的明显原因..

最佳答案

看起来变量定义存在字典序依赖。

Windows 按字典顺序 (:-O) 扩展和填充环境变量

您只能在您的变量上使用“按字典顺序”低于您的变量的变量。

例子:以下定义:

VAR_01=1
VAR_02=%VAR_01%-2
VAR_03=%VAR_02%-3

生产

VAR_01 is 1
VAR_02 is 1-2
VAR_03 is 1-2-3

但是

VAR_01=1
VAR_02=%VAR_03%-2
VAR_03=%VAR_01%-3

生产

VAR_01 is 1
VAR_02 is -2
VAR_03 is 1-3

由于展开 VAR_02 时未定义 VAR_03。

关于windows - Windows环境变量嵌套的限制?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3594846/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com