использование: cc [опции] файлы. Используйте 'cc -flags' для деталей - PullRequest
0 голосов
/ 24 февраля 2012

У меня есть make-файл. Когда я запускаю его в 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

Что значит "usage: cc [ options] files. Use 'cc -flags' for details"?

Я не уверен, почему я получаю ошибку, потому что я использую 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

Ответы [ 2 ]

2 голосов
/ 24 февраля 2012

Похоже, у вас нет никаких объектных файлов для фактической связи.Переменная $ (INTFOBJS) скорее всего пуста.Наряду с потенциально неправильными флагами, это также может привести к сбою.

2 голосов
/ 24 февраля 2012

Это означает, что у вас неверный параметр компилятора в командной строке. Возможно, вы используете «неправильный» компилятор (например, GCC вместо компилятора Sun, например). Возможные варианты проблемы, которые я вижу:

  • -Xt
  • -errwarn=%all

и возможно (но, вероятно, нет)

  • -Bstatic

Другие не приведут к таким ошибкам использования.

(Примечание: это поможет определить машину и используемый вами компилятор, а компилятор Oracle ожидает, что вы будете его использовать.)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...