“make”命令在包含“空格”的目录中不起作用

“make”命令在包含“空格”的目录中不起作用

我经常用它make来编译程序。但是,有时,只有使用某些软件包时,当目录包含空格时,它会显示:

No such file or directory

例子:

如果我make在目录中运行/home/akib/My Directory/

  • 如果目录存在,则:

    $ make
    make: *** /home/akib/My: Is a directory. Stop.
    
  • 如果不存在,则:

    $ make
    Makefile:<line>: Directory/<file>: No such file or directory
    make: *** No rule to make target 'Directory/<file>'. Stop.
    

这是软件包的 Makefile 的错误吗?我认为这是Makefile 和软件包make本身的错误,因为这种情况只出现在一些软件包中,并且当出现此错误时,会提示一些有错误的行。我打开 Makefile 并看到这些行包含变量。我该如何修复此问题?makemake

答案1

你说得对,这是一个 bug。更多详细信息请见此处,文档如下#712

您可以通过转义空格来更改 makefile,即/home/akib/My\ Directory/,但它是不一致的和不可预测的,因为它并不总是有效(我能想到的最好的例子是扩展变量中的名称列表)。

_最好和最快的办法是使用而不是 来重命名路径中的问题文件夹

这是个解决方法吗?是的。有效吗?再次回答是的。烦人吗?3x 回答是的。

相关内容