用法:抄送[选项]文件。使用';cc-标志';详情
我有一个生成文件。当我在Unix上运行它时,会出现以下错误:用法:抄送[选项]文件。使用';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
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“
”或类似的问题。