在gnu utils上打印Windows路径



我正在尝试制作文件,并试图创建一个简单的跨平台制作文件。

PROG = at
INCLUDES = 
LIBPATH = 
ifeq ($(PLATFORM), linux)
obj_ext = .o
CC = g++
endif
ifeq ($(PLATFORM), winnt)
obj_ext = .obj
exe_ext = .exe
CC = cl
INCLUDES = C:Program Files (x86)Microsoft Visual Studio 9.0VCinclude
endif
printme:
    echo PLATFORM $(PLATFORM)
    echo Object extension $(obj_ext)
    echo $(INCLUDES)

这给了我错误:

>make printme
echo PLATFORM winnt
PLATFORM winnt
echo Object extension .obj
Object extension .obj
echo C:Program Files (x86)Microsoft Visual Studio 9.0VCinclude
/usr/bin/sh: -c: line 0: syntax error near unexpected token `('
/usr/bin/sh: -c: line 0: `echo C:Program Files (x86)Microsoft Visual Studio 9.0VCinclude'
make: *** [printme] Error 258

我不明白意外的标记'('错误。有人知道为什么吗?

我的名字是:

>make -version
GNU Make 3.81
Copyright (C) 2006  Free Software Foundation, Inc.
This is free software; see the source for copying conditions.
There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A
PARTICULAR PURPOSE.
This program built for i386-pc-mingw32

此处:

printme: 
    ...
    echo $(INCLUDES)

以不可预知的字符串作为参数调用echo。许多神奇的字符将使外壳以意想不到的方式运行。重定向,通配符,然后是(list)(在您的示例中:(x86)),用于在子shell中执行命令列表。

printme:
    ...
    echo '$(INCLUDES)'

最新更新