0
我下載了Cubist軟件的單線程Linux版本的C源代碼。代碼所做的是獲取輸入數據並生成迴歸樹模型。編譯C代碼時出現Makefile錯誤
當使用Ubuntu終端編譯源代碼時,它生成了帶有out錯誤的可執行文件。
這裏是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 $<
當我嘗試做類似的工作窗口,我得到錯誤信息
$ make all
make cubist
make: /bin/csh: Command not found
make: *** [Makefile:56: all] Error 127
但是,當我從Makefile中刪除SHELL =/bin中/ csh的嘗試,它的工作。我在這裏的問題是它對軟件有負面影響,或者如何解決它與刪除SHELL =/bin/csh。 非常感謝你
所以你說你下載的Linux軟件,它不適用於Windows?我是否正確? – szpanczyk
你是什麼意思的「類似的工作」。你正試圖在Linux shell源代碼中使用'make'嗎?你知道,如果源代碼是用於Linux的,它可能取決於某些東西,也許是系統的幾十個特性?你知道什麼是csh嗎?我在問,因爲我可能會評估錯誤的情況。但我認爲你不知道你在做什麼。 – szpanczyk
我看不出在這個具體例子中'SHELL'設置可以影響任何東西。 – avysk