make
和shell
选项在g77中意味着什么?例如,如果我的Makefile中有以下脚本:
FC = g77
FFLAGS = -O2 -mno-cygwin
LDFLAGS =
CD = cd
LN = ln
LNFLAGS = -s
MAKE = /bin/make
RM = rm
RMFLAGS = -f
SHELL = /bin/sh
这是否意味着make
操作需要使用/bin/make.exe
?
旁注:当我运行编译时,使用上面的命令行,我收到一个错误:
/ bin / sh:第4行:制作:命令不是 结果
不确定两者是否相关。
编辑:这是我的Makfile:
arpacklib:
@( \
for f in $(DIRS); \
do \
$(CD) $$f; \
$(ECHO) Making lib in $$f; \
$(MAKE) $(PRECISIONS); \
$(CD) ..; \
done );
$(RANLIB) $(ARPACKLIB)
答案 0 :(得分:1)
这些只是保存计算机上程序位置的变量。可能会有$(SHELL) a_shell_script.sh
这样的规则使用这些变量。 FC
,CD
,LN
和RM
相似,只是没有明确列出的路径。将程序作为变量可以很容易地改变它们,例如,如果你想使用不同的版本。
您的错误看起来像shell正在尝试运行命令Making
。可能的原因是前面有一个未定义的变量,例如规则
all:
$(ECHO) Making something
在运行时会扩展为Making something
而不是echo Making something
。没有看到我认为最好的相关线。