我下载了单线程Linux版本的立体声软件的C源代码。代码的作用是获取输入数据并生成回归树模型。
使用Ubuntu终端编译源代码时,它生成了Executable文件,但没有输出错误 这是makefile
CC = gcc -ffloat-store
OFLAGS = -O3
CFLAGS = -DVerbOpt -g -Wall -O0
LFLAGS = $(S)
SHELL = /bin/csh
src =\
global.c\
xval.c\
cubist.c\
sort.c\
construct.c\
predict.c\
stats.c\
discr.c\
rules.c\
contin.c\
formrules.c\
formtree.c\
getdata.c\
getnames.c\
implicitatt.c\
instance.c\
modelfiles.c\
prunetree.c\
regress.c\
trees.c\
update.c\
utility.c
obj =\
global.o cubist.o construct.o\
formtree.o prunetree.o stats.o discr.o contin.o\
trees.o\
formrules.o rules.o\
instance.o\
predict.o\
regress.o\
xval.o\
getnames.o getdata.o implicitatt.o sort.o\
modelfiles.o\
update.o utility.o\
all:
make cubist
$(CC) $(LFLAGS) $(OFLAGS) -o summary summary.c -lm
# debug version (including verbosity option)
cubistdbg:\
$(obj) defns.i extern.i text.i Makefile
$(CC) $(CFLAGS) -o cubistdbg $(obj) -lm
# production version
cubist:\
$(src) defns.i text.i Makefile
cat defns.i $(src)\
| egrep -v 'defns.i|extern.i' >cubistgt.c
$(CC) $(LFLAGS) $(OFLAGS) -o cubist cubistgt.c -lm
strip cubist
rm cubistgt.c
$(obj): Makefile defns.i extern.i text.i
.c.o:
$(CC) $(CFLAGS) -c $<
当我尝试在Windows中执行类似的工作时,我收到了错误消息
$ make all
make cubist
make: /bin/csh: Command not found
make: *** [Makefile:56: all] Error 127
但是当我尝试从Makefile中删除SHELL = / bin / csh时它起作用了。我的问题是它对软件或软件有负面影响 我怎么能解决它删除SHELL = / bin / csh。 非常感谢你
答案 0 :(得分:1)
我的猜测是,删除行SHELL = /bin/csh
即可。
/bin/csh
是一个shell(命令行界面,命令处理器,命令提示符),主要用于unix。在您的makefile中,它被定义,但未被引用(未使用)
有时makefile可能需要一个shell(命令处理器)来执行某些任务,但它取决于makefile - 我的意思是,编写makefile的人选择使用或不使用该功能,如果使用,可以(或必须)指定要使用的shell。现在情况并非如此。