【问题标题】:Can GNU make handle spaces?GNU 可以制作句柄空间吗?
【发布时间】:2013-02-01 04:46:50
【问题描述】:

我有一个包含 C INCLUDES 的生成文件,其中包含空格。我无法绕过文件名中的空格。有没有办法用 gnu make 在文件名中有空格?

【问题讨论】:

  • 如果你不能解释为什么你不能绕过这些空间,恐怕不会有太多帮助。也许发布 MAKEFILE?
  • 如果它可以绕过它,它会在空间前面加上一个“\”来逃避它,但我不确定它是否可以在 makefile 中工作
  • 我无法绕过空格,因为 makefile 是这样的:LOCAL_C_INCLUDES:=C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\ 我需要在其中包含库:S

标签: makefile gnu-make


【解决方案1】:

Make 通过转义文件名中的空格对此提供了一些基本支持,因为以下 Makefile 将正确编译和重新编译 C 文件 foo bar.c

foo\ bar: foo\ bar.c
    gcc -o "${@}" "${<}"

但是,您必须非常小心地引用您运行的每个命令,并且以空格分隔的文件列表的变量(例如,SRCSLIBS)将不起作用,尽管它是可能的使用Make text functions 进行足够多的黑客攻击,您就可以解析出引号并让一切正常运行……

因此,虽然在规则和模式中对文件名中的空格有基本的支持,但任何复杂的事情都将是一项非常艰巨且令人沮丧的工作。

【讨论】:

  • sry,我不明白这个例子。我说的是 LOCAL_C_INCLUDES := C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\
猜你喜欢
  • 1970-01-01
  • 2019-11-27
  • 1970-01-01
  • 2010-10-03
  • 2017-01-15
  • 2012-08-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多