用法:抄送[选项]文件。使用';cc-标志';详情

用法:抄送[选项]文件。使用';cc-标志';详情,c,makefile,C,Makefile,我有一个生成文件。当我在Unix上运行它时,会出现以下错误: cc -I/opt/oracle/product/9.2.0/rdbms/demo -I/opt/oracle/product/9.2.0/rdbms/public \ -I/opt/oracle/product/9.2.0/plsql/public \ -I/opt/oracle/product/9.2.0/network/public -I../common -I../include -I. \ -L/opt/o

我有一个生成文件。当我在Unix上运行它时,会出现以下错误:

cc -I/opt/oracle/product/9.2.0/rdbms/demo -I/opt/oracle/product/9.2.0/rdbms/public \
   -I/opt/oracle/product/9.2.0/plsql/public \
   -I/opt/oracle/product/9.2.0/network/public -I../common -I../include -I. \
   -L/opt/oracle/product/9.2.0/lib -L/opt/oracle/product/9.2.0/rdbms/lib -L../../lib \
   -g -errwarn=%all -Xt  -lclntsh -ldl -Bstatic -lclient9 -lvsn9 -lcommon9 -lgeneric9 \
   -lmm -lcore9 -lnls9  -lwssmbx -ldes -lnsl -lsocket -lgen -lm -o bessToWss

usage: cc [ options] files.  Use 'cc -flags' for details  
*** Error code 1
用法:cc[options]文件。详细信息使用“cc-flags”
”是什么意思

我不确定为什么会出现错误,因为我确实使用了
cc-flags

$(TARGET_DIR)/bessToWss: $(INTFOBJS)  
    cc $(CFLAGS) $(INTFOBJS) $(OCISHAREDLIBS) -o $@
编辑:添加我的整个makefile

ORACLE_HOME=/opt/oracle/product/9.2.0

COMMON_SRC=../common
BNS_INCLUDE=../include
LIBHOME=$(ORACLE_HOME)/lib/
RDBMSLIB=$(ORACLE_HOME)/rdbms/lib/

WSSLIBS     =-lwssmbx -ldes
LLIBRDBMS_CLT   =-lclient9 -lvsn9 -lcommon9 -lgeneric9 -lmm
LLIBCLNTSH      =-lclntsh -ldl
CORELIBS        =-lcore9 -lnls9 
LDLIBS          =-lnsl -lsocket -lgen -lm
EXSYSLIBS       =-R $(ORACLE_HOME)/lib

STATICTTLIBS    =$(LLIBRDBMS_CLT) $(CORELIBS) $(WSSLIBS) $(LDLIBS)
OCISHAREDLIBS   =$(LLIBCLNTSH) -Bstatic $(STATICTTLIBS)


LDFLAGS     =-L$(ORACLE_HOME)/lib -L$(ORACLE_HOME)/rdbms/lib -L../../lib

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 -errwarn=%all -Xt

BESSOBJS=bessToWss.o


COMMONLIST=$(COMMON_SRC)/oracle.c \
    $(COMMON_SRC)/logger.c

INTFOBJS=$(BESSOBJS) $(COMMONLIST)


$(TARGET_DIR)/bessToWss: $(INTFOBJS)
    cc $(CFLAGS) $(INTFOBJS) $(OCISHAREDLIBS) -o $@
clean:
    $(RM) *.o

这意味着您在命令行上有一个无效的编译器选项。可能是您使用了“错误”的编译器(例如,可能是GCC而不是Sun的编译器)。我看到的可能的问题选项有:

  • -Xt
  • -errwarn=%all
也许(但也许不是)

  • -Bstatic
其他的不会导致这样的使用错误


(注意:这将有助于识别您正在使用的计算机和编译器,以及Oracle希望您使用的编译器。)

这意味着您在命令行上有一个无效的编译器选项。可能是您使用了“错误”的编译器(例如,可能是GCC而不是Sun的编译器)。我看到的可能的问题选项有:

  • -Xt
  • -errwarn=%all
也许(但也许不是)

  • -Bstatic
其他的不会导致这样的使用错误


(注意:这将有助于识别您正在使用的计算机和编译器,以及Oracle希望您使用的编译器。)

看起来您没有任何对象文件可以实际链接在一起。$(INTFOBJS)变量可能为空。除了可能有错误的标志外,这也会导致它失败。

看起来您没有任何对象文件可以实际链接在一起。$(INTFOBJS)变量可能为空。除了可能有错误的标志外,这也会导致它失败。

+1:这也是一个问题,但可能不会导致“使用”错误。一个相关的问题是,输出文件是
bessToWss
,而不是规则所暗示的子目录(除非
$(TARGET\u DIR)
是当前目录)。那么,
$INTFOBJS
是由另外两个变量组合而成的(不过我的问题中没有包括它们)。一个是.o文件,另一个是2.c文件的列表。我想知道.o和.c文件的混合是否会导致错误?“猜对了。”阿德里安:不;C编译器将从容地处理C和对象文件(以及汇编程序文件,如果您愿意的话)的混合。我敢肯定,问题是你指定的选项之一。如果文件列表有问题,我希望编译器(链接器)会抱怨“未指定对象文件”或“
未定义符号”\u main“
”或类似的问题。+1:这也是一个问题,但可能不会导致“用法”错误。一个相关的问题是,输出文件是
bessToWss
,而不是规则所暗示的子目录(除非
$(TARGET\u DIR)
是当前目录)。那么,
$INTFOBJS
是由另外两个变量组合而成的(不过我的问题中没有包括它们)。一个是.o文件,另一个是2.c文件的列表。我想知道.o和.c文件的混合是否会导致错误?“猜对了。”阿德里安:不;C编译器将从容地处理C和对象文件(以及汇编程序文件,如果您愿意的话)的混合。我敢肯定,问题是你指定的选项之一。如果文件列表出现问题,我希望编译器(链接器)会抱怨“未指定对象文件”或“
未定义符号”\u main“
”或类似的问题。