如何处理makefile中目录名称中的空格

问题描述 投票:0回答:1
  • 文件名中的空格似乎使makefile很难(for example here)。

  • 我们可以控制文件名,但是项目所在的不是目录名

  • 如何在使用~/Downloads/OREN ISH$(shell pwd)中修复此makefile:

BASEDIR = $(shell pwd)
${BASEDIR}/main: ${BASEDIR}/main.c
    gcc $< -o $@

我们收到以下错误(删除${BASEDIR}后消失:]

make: Circular /home/oren/Downloads/OREN <- /home/oren/Downloads/OREN dependency dropped.
make: *** No rule to make target 'ISH/main.c', needed by '/home/oren/Downloads/OREN'.  Stop.
makefile whitespace
1个回答
0
投票
[首先,在文档中添加一条注释,告诉用户不应将软件安装在包含空格的目录路径中。您也可以使用类似的方法轻松测试:

ifneq (1,$(words $(CURDIR))) $(error Containing path cannot contain whitespace: '$(CURDIR)') endif

或者第二(这还是我的建议,即使在路径名中完美地使处理的空格成为空白),也仅使用相对路径来编写makefile,因此您无需担心源树根目录的路径是什么样子或它可能包含哪些魔术人物。

© www.soinside.com 2019 - 2024. All rights reserved.