我收到了一个我修改过的makefile:
############################################
# Makefile using OCI (Oracle Call Interface)
# D. LaRue - May, 2001
############################################
ORACLE_HOME=/opt/oratcp11/product/11.2.0/client11R2_32bits
CC=/opt/SUNWspro/SUNWspro12/sparc/SUNWspro/bin/cc
COMMON_SRC=../common
BNS_INCLUDE=../include
LIBHOME=$(ORACLE_HOME)/lib/
RDBMSLIB=$(ORACLE_HOME)/rdbms/lib/
WSSCOMMON_LIB=/vobs/wssCommon/lib_32
TARGET_DIR=.
LLIBCRYPTO =-lbnscrypto
LSOLCRYPTO =-lcryptoutil -lpkcs11
WSSLIBS =-lwssmbx -ldes
LIBRDBMS_CLT =-lclient11 -lvsn11 -lcommon11 -lgeneric11 -lmm
LLIBCLNTSH =-lclntsh -ldl
CORELIBS =-lcore11 -lnls11
LDLIBS =-lnsl -lsocket -lgen -lm
EXSYSLIBS =-R $(ORACLE_HOME)/lib
STATICTTLIBS =$(LLIBRDBMS_CLT) $(CORELIBS) $(WSSLIBS) $(LLIBCRYPTO)
OCISHAREDLIBS =$(LLIBCLNTSH) $(LDLIBS) -Bstatic $(STATICTTLIBS) -Bdynamic $(LSOLCRYPTO)
LDFLAGS =-L$(ORACLE_HOME)/lib -L$(ORACLE_HOME)/rdbms/lib -L$(WSSCOMMON_LIB) -L../lib_32
INCLUDE =-I$(ORACLE_HOME)/rdbms/demo -I$(ORACLE_HOME)/rdbms/public -I$(ORACLE_HOME)/plsql/public -I$(ORACLE_HOME)/network/public -I$(COMMON_SRC) -I$(BNS_INCLUDE) -I.
CFLAGS =$(INCLUDE) $(LDFLAGS) -g -Xt
BESSOBJS=bessToWss.o
COMMONLIST=$(COMMON_SRC)/oracle.c \
$(COMMON_SRC)/logger.c
INTFOBJS=$(BESSOBJS) $(COMMONLIST)
ALL: $(TARGET_DIR)/bessToWss
$(TARGET_DIR)/bessToWss: $(INTFOBJS)
$(CC) $(CFLAGS) $(INTFOBJS) $(OCISHAREDLIBS) -o $@
clean:
$(RM) *.o
当我运行文件时出现错误
". Stop.e: Error: Don't know how to make "bessToWss
知道出了什么问题吗?我通过脚本在一些unix机器上运行它。脚本调用后设置一些路径或一些其他设置。正如你所看到的,我不确定它是如何被称为的。
谢谢:)
答案 0 :(得分:2)
错误消息看起来很奇怪 - 你在makefile中有CRLF行结尾吗?
". Stop.e: Error: Don't know how to make "bessToWss
那可能是:
/bin/make: Error: Don't know how to make "bessToWss
CR ". Stop.
其中 CR 是回车条,将打印位置移回到行首。
您是否在Windows计算机上创建了makefile或对其进行编辑?您是否在不使用文本模式传输的情况下进行FTP或复制,因此保留了CRLF行结尾?
如果是这样,摆脱回车。使用vim
在Unix上编辑文件并执行:set fileformat=unix
并再次保存。
根据这一假设,make
正在尝试构建一个程序,其名称中包含一个CR(回车符),并且您没有为此做出规则。