代码之家  ›  专栏  ›  技术社区  ›  sorin

如何在x64计算机上从nmake访问programfiles环境变量?

  •  3
  • sorin  · 技术社区  · 16 年前

    我试着找到通往 ProgramFiles 环境变量,应该扩大到 C:\Program Files (x86) 在一 x64 机器与 C:\Program Files 在一 x86 机器。

    问题是在nmake文件中,如果我这样做:

     all:
          echo $(PROGRAMFILES)
    

    这将扩展到 C:\程序文件 每次都是这样。

    来自x64计算机的环境详细信息:

    ProgramFiles(x86)=C:\Program Files (x86)
    ProgramW6432=C:\Program Files
    
    :: this one is special, if will return different results based on current process x86/x64
    ProgramFiles=C:\Program Files (x86) or C:\Program Files
    PROCESSOR_ARCHITECTURE=x86 or x64
    

    现在更新的问题是 如何在nmake中获取x86程序文件的位置,在某种程度上,这将在x86和x64计算机上都适用。 ?

    2 回复  |  直到 13 年前
        1
  •  2
  •   Chris Morgan    13 年前

    此表达式似乎适用于64位的Windows7, nmake 在32位和64位下运行:

    %%PROGRAMFILES(x86)%%
    

    例如

    LC = %%PROGRAMFILES(x86)%%\Microsoft SDKs\Windows\v7.0A\bin\lc.exe
    
        2
  •  1
  •   Andreas    16 年前

    如果你在一台X64机器上,完全合法 %ProgramFiles% 指向 C:\Program Files -在64位程序环境中。 要获取x86对应项,必须使用的变量是 %ProgramFiles(x86)% .

    可以通过评估在 PROCESSOR_ARCHITECTURE 环境变量(例如设置为 AMD64 )或者只是想得到 %程序文件(x86)% 如果它是空的,则获取 %程序文件% .

    另一种方法是启动32位 cmd.exe 在那里跑动。它位于 C:\Windows\SysWOW64 .