Попытка скомпилировать систему, используемую для моего проекта мастеров, но столкнувшись с трудностями. Я считаю, что это должно правильно компилироваться, поэтому я предполагаю, что ошибка попадает под то, что я сделал неправильно, а не с базой кода?
Любое понимание было бы высоко оценено.
Команды, которые я ввел:
$ 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
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
или наоборот. Помните, если вы укажете оба, то последний вариант будет эффективным.