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 に答える