2012-12-27 82 views
0

塊引用Raspbain G ++編譯器停在--m命令

您好,我試圖編譯的粉末玩具的最新的源代碼,但我的編譯器(G ++與scons的)崩潰每次擊中時間命令與--m在裏面。

崩潰日誌:

scons --lin --release --sse2 
scons: Reading SConscript files ... 
Checking for C library fftw3f... (cached) yes 
Checking for C library bz2... (cached) yes 
Checking for C library z... (cached) yes 
Checking for C header file bzlib.h... (cached) yes 
Checking for C library lua... (cached) no 
Checking for C library lua5.1... (cached) yes 
scons: done reading SConscript files. 
scons: Building targets ... 
^[[Ag++ -o build/src/Format.o -c -w -std=c++98 -fkeep-inline-functions -sse2 -O3 -ftree-vectorize -funsafe-math-optimizations -ffast-math -fomit-frame-pointer -funsafe-loop-optimizations -Wunsafe-loop-optimizations -D_GNU_SOURCE=1 -D_REENTRANT -DLUACONSOLE -DGRAVFFT -D_GNU_SOURCE -DUSE_STDINT -D_POSIX_C_SOURCE=200112L -DUSE_SDL -DLIN -DX86 -DX86_SSE2 -I/usr/include/SDL -I/usr/include/lua5.1 -Ibuild/src -Ibuild/data -Ibuild/generated build/src/Format.cpp 
g++: error: unrecognized option â-msse2â 
scons: *** [build/src/Format.o] Error 1 
scons: building terminated because of errors. 

爲什麼會這樣發生?我必須刪除-m32命令才能編譯它。

+0

,你能否告訴有關SCons的腳本,請。 – Brady

+0

另外,你使用的是什麼版本的g ++?如果你手動執行命令行上的g ++命令(沒有SCons),它還會崩潰嗎?如果是這樣,那麼它與SCons無關。 – Brady

+0

g ++(Debian 4.6.3-12 + rpi1)4.6.3 是的,如果我在沒有scons的comamnd行上使用G ++,它會在-m32命令上崩潰 – Candunc

回答

-1

什麼是^ [[A?你的makefile中有不可打印的字符嗎?你可以一個接一個地迴應所有參數,以確定哪些包含這些奇怪的字符?

+0

他在編譯時可能會碰到一個鍵。 –

+0

這裏沒有涉及makefile,而是SCons。這不是一個答案。這些問題應該作爲對原始問題的評論。 – Brady

+0

是的,我偶然在編譯過程中碰到了一個箭頭鍵。沒有在任何SConscript不可見的字符,我知道了編譯唯一的辦法就是從#與--m32線。這是做一個適當的編譯和它的錯誤env.Append(CCFLAGS =' - msse2') – Candunc

1

我強烈懷疑這是因爲-sse2選項告訴G ++產生SSE2,這是英特爾的x86架構的SIMD指令。 Raspberry Pi板是完全不同的計算機體系結構(ARM),不支持SSE2。 ARM的等效SSE2是NEON,但NEON可用於RPi中使用的ARM。

我認爲,對於G ++不能識別的選項,它會嘗試與其他標誌前綴(在這種情況下-m,但我已經看到-f之前),看看它是否是一個代名詞。

在你的情況SSE2使得對樹莓派沒有意義的,對於上面的例子,就是問題所在。