Ошибка cc1plus: выходное имя файла указано дважды

0

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

Любое понимание было бы высоко оценено.

Команды, которые я ввел:

$ mkdir obj
$ cd obj
$ ../configure CC=gcc-4.6 CXX=g++-4.6
$ OPT="-O0 -DMODE=0" make

Вывод из следующего:

make -C util
make[1]: Entering directory '/home/jordan/workspace/swan/obj/util'
make CFLAGS="-O4 -DUSE_RDTSC=0" pp_time.o
make[2]: Entering directory '/home/jordan/workspace/swan/obj/util'
cc -O4 -DUSE_RDTSC=0   -c -o pp_time.o ../../util/pp_time.c
make[2]: Leaving directory '/home/jordan/workspace/swan/obj/util'
mv pp_time.o pp_time_us.o
ar crv libtime_us.a pp_time_us.o
a - pp_time_us.o
ranlib libtime_us.a
make CFLAGS="-O4 -DUSE_RDTSC=1" pp_time.o
make[2]: Entering directory '/home/jordan/workspace/swan/obj/util'
cc -O4 -DUSE_RDTSC=1   -c -o pp_time.o ../../util/pp_time.c
make[2]: Leaving directory '/home/jordan/workspace/swan/obj/util'
mv pp_time.o pp_time_cy.o
ar crv libtime_cy.a pp_time_cy.o
a - pp_time_cy.o
ranlib libtime_cy.a
make CFLAGS="-O4 -DUSE_RDTSC=0 -DUSE_MARSS" pp_time.o
make[2]: Entering directory '/home/jordan/workspace/swan/obj/util'
cc -O4 -DUSE_RDTSC=0 -DUSE_MARSS   -c -o pp_time.o ../../util/pp_time.c
make[2]: Leaving directory '/home/jordan/workspace/swan/obj/util'
mv pp_time.o pp_time_marss.o
ar crv libtime_marss.a pp_time_marss.o
a - pp_time_marss.o
ranlib libtime_marss.a
make[1]: Leaving directory '/home/jordan/workspace/swan/obj/util'
make -C scheduler
make[1]: Entering directory '/home/jordan/workspace/swan/obj/scheduler'
if [ ! -f mangled.h ] ; then ../../scheduler/xfn.sh /dev/null > mangled.h ; fi
g++-4.6 -g -O2 -Wall -o0 -DMODE=0 -I -I/scheduler -I/swan -I.. -I../scheduler -std=c++0x -momit-leaf-frame-pointer -fno-omit-frame-pointer -pthread -S ../../scheduler/wf_stack_frame.cc -o wf_stack_frame.s
cc1plus: error: output filename specified twice
make[1]: *** [wf_stack_frame.s] Error 1
make[1]: Leaving directory '/home/jordan/workspace/swan/obj/scheduler'
make: *** [scheduler-dir] Error 2
  • 0
    -S не должно быть там в опциях g ++.
  • 0
    Должен ли я удалить -S и его аргумент из Makefile?
Показать ещё 4 комментария
Теги:
makefile

1 ответ

0
g++-4.6 -g -O2 -Wall -o0 -DMODE=0 -I -I/scheduler -I/swan -I.. -I../scheduler -std=c++0x -momit-leaf-frame-pointer -fno-omit-frame-pointer -pthread -S ../../scheduler/wf_stack_frame.cc -o wf_stack_frame.s
cc1plus: error: output filename specified twice

Проблема заключается в том, что у вас есть -o0 в вашей команде, которая указывает, что ваше имя файла вывода равно 0 которое конфликтует с -o wf_stack_frame.s. Это должно быть -o0 [capital letter O]. У вас уже есть -o2 в команде, которую вы могли бы удалить, и использовать -o0 или наоборот. Помните, если вы укажете оба, то последний вариант будет эффективным.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню