2014-02-26 45 views
0

嘗試編譯用於​​我的主項目但系統遇到困難的系統。 我相信這應該是正確編譯,所以我認爲錯誤屬於我做錯了,而不是代碼庫本身?cc1plus錯誤:指定了兩次輸出文件名

任何有識之士將不勝感激。

命令我已進入:從化妝下面

$ 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 ++選項中。 – Sundar

+0

我應該從Makefile中刪除-S和它的參數嗎? – Jordan

+0

簡單的骯髒方法是編輯/ home/jordan/workspace/swan/obj/scheduler中的'Makefile',並從那裏刪除-S。但好的解決方案將是修復您的automake腳本。 – Sundar

回答

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 

的問題是,你在你的命令指定的輸出文件名是0-o0這與-o wf_stack_frame.s衝突。這一定是-O0 [capital letter O]。您已在命令中使用-O2,您可以將其刪除並使用-O0,反之亦然。請記住,如果您提到兩者,那麼最後一個選項將會生效。

相關問題