makefile:28:目标'usage.msg'的配方失败make:*** [usage.msg]错误126

时间:2019-09-15 22:15:45

标签: makefile

我试图执行make并收到以下错误:

echo '/* GENERATED CODE, DO NOT EDIT */' > usage.msg.tmp
/home/kiran/bin/x86_64/stringify usage.txt >> usage.msg.tmp
/bin/sh: 1: /home/kiran/bin/x86_64/stringify: Permission denied
makefile:28: recipe for target 'usage.msg' failed
make: *** [usage.msg] Error 126

makefile具有以下代码:

#create msg from text
%.msg: %.txt
echo '/* GENERATED CODE, DO NOT EDIT */' > $@.tmp
${STRINGIFY} $< >> $@.tm
mv -f $@.tmp $@

我尝试更改文件的权限,但没有任何帮助。我认为该makefile试图将$ {STRINGIFY}作为目录执行。如果我的理解正确,请告诉我。我需要做些什么吗?

1 个答案:

答案 0 :(得分:0)

对我来说,似乎make要执行在目录stringifiy中找到的程序/home/kiran/bin/x86_64/。看来该程序确实存在,但是未设置执行权限。

您可以使用

检查权限
ls -l /home/kiran/bin/x86_64/stringify

应该有类似

的输出
  

-rw-r--r-- 1 kiran kiran 16 Sep 16 20:30 / home / kiran / bin / x86_64 / stringify

我不知道此字符串化程序将要做什么,因此请自担风险。

您可以尝试通过以下方式设置执行权限

chmod u+x /home/kiran/bin/x86_64/stringify

之后,ls命令的输出应为:

  

-rwxr--r-- 1 kiran kiran 16 Sep 16 20:30 / home / kiran / bin / x86_64 / stringify

注意字母x靠近开头。

您应该搜索一些有关文件访问权限以及如何更改它们的信息。