makefile平铺扩展,windowsXP和windows7之间的差异

makefile平铺扩展,windowsXP和windows7之间的差异,windows,makefile,Windows,Makefile,我正在重新编译一个项目。以前我使用的是WindowsXP,但我切换到了Windows7 makefile有问题的部分是: %else INSTALL_DIR := C:\PROGRA~1\micros~1.0\VC %endif %if !%exists($(INSTALL_DIR)) %error blablabla... %endif 似乎第一行中已经展开了PROGRA~1,因为我得到了以下错误: (line 25): Test: ')' expected; got "F

我正在重新编译一个项目。以前我使用的是WindowsXP,但我切换到了Windows7

makefile有问题的部分是:

%else
        INSTALL_DIR := C:\PROGRA~1\micros~1.0\VC
%endif

%if !%exists($(INSTALL_DIR))
%error blablabla...
%endif
似乎第一行中已经展开了
PROGRA~1
,因为我得到了以下错误:

(line 25): Test: ')' expected; got "Files". Stop.
为什么行为不同于WindowsXP?如何应对?(这不是我使用这种结构的唯一地方…)


马克西姆斯-谢谢你的回答-这对我帮助很大;)我想确保一切正常,我注意到,我犯了一个愚蠢的错误

再一次,更多代码:

%ifdef OMAKE_MSVC_INSTALL_DIR
    INSTALL_DIR := $(OMAKE_MSVC_INSTALL_DIR)
%echo case 1
%echo $(INSTALL_DIR)
%else
    INSTALL_DIR := C:\PROGRA~1\micros~1.0\VC
    %echo case 2
%endif

%if !%exists($(INSTALL_DIR))
    %error blablabla
%endif
我以为案例2已经执行了,但事实上案例1已经执行了。。。 现在一切都清楚了:) 谢谢:-)

这些短名称真的存在于有问题的PC上吗?可能是您的路径具有不同的短名称变体。无论如何,使用硬编码的短名称是个坏主意,它们不是常数。是的,我用“dir/x”检查过。不幸的是,情况并非如此……1。您确定执行了“%else”块吗?(INSTALL_DIR:=C:\PROGRA~1\micros~1.0\VC),可能是条件(此处不可见)失败?2.您在XP和7中使用的编译器版本是什么?