我试图执行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}作为目录执行。如果我的理解正确,请告诉我。我需要做些什么吗?
答案 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靠近开头。
您应该搜索一些有关文件访问权限以及如何更改它们的信息。