0

我得到了一个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 机器上运行它。在设置一些路径或一些其他设置之后,脚本调用 make。如您所见,我不确定它是如何调用的。

谢谢 :)

4

1 回答 1

3

错误消息看起来很奇怪——makefile 中有 CRLF 行结尾吗?

". Stop.e: Error: Don't know how to make "bessToWss

那可能是:

/bin/make: Error: Don't know how to make "bessToWssCR". Stop.

其中CR是回车将打印位置移回行首。

您是否在 Windows 机器上创建或编辑了 makefile?您是否在不使用文本模式传输的情况下 FTP 或复制它,所以保留了 CRLF 行尾?

如果是这样,请摆脱回车。在 Unix 上编辑文件vim:set fileformat=unix再次保存。

在这个假设下,make正在尝试构建一个名称中包含 CR(回车)的程序,而您没有给它一个这样做的规则。

于 2012-04-18T19:31:20.440 回答