0

块引用

您好,我正在尝试编译 The Powder Toy 的最新源代码,但我的编译器(带有 scons 的 G++)每次遇到带有 --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 命令才能编译它。

4

2 回答 2

1

我强烈怀疑这是因为 -sse2 选项告诉 g++ 生成SSE2,这是英特尔 x86 架构的 SIMD 指令。Raspberry Pi 板是完全不同的计算机架构 (ARM),不支持 SSE2。SSE2 的 ARM 等效项是 NEON,但 NEON 可用于 RPi 中使用的 ARM。

我认为对于 g++ 无法识别的选项,它会尝试使用另一个标志(在本例中为 -m,但我之前见过 -f)作为前缀,以查看它是否是同义词。

在您的情况下, sse2 在 Raspberry Pi 上没有任何意义,对于上面的示例,这就是问题所在。

于 2013-03-22T08:29:07.120 回答
-1

什么是 ^[[A ?你的makefile中有不可打印的字符吗?能不能一一回显所有参数,识别出哪些包含这些奇怪的字符?

于 2012-12-27T05:48:47.030 回答