2012-02-04 17 views
10

"SSE命令セットが有効になっていません"このエラーで問題が発生しました。どのように私はこれを把握することができますか?SSE命令セットが有効になっていません

私はACER i7、Ubuntu 11.10を持っていますので、お手伝いできますか?

ご協力いただければ幸いです!

また、実行中の

sudo cat /proc/cpuinfo | grep flags 

を与える:

flags : fpu vme de pse tsc msr pae mce cx8 apic mtrr pge mca cmov pat pse36 clfl 
ush dts acpi mmx fxsr sse sse2 ss ht tm pbe nx rdtscp lm constant_tsc arch_perfm 
on pebs bts xtopology nonstop_tsc aperfmperf pni pclmulqdq dtes64 monitor ds_cpl 
vmx est tm2 ssse3 cx16 xtpr pdcm sse4_1 sse4_2 x2apic popcnt xsave avx lahf_lm 
ida arat epb xsaveopt pln pts dts tpr_shadow vnmi flexpriority ept vpid 

を実際に私はガゼボ-1.0.0-RC2-x86_64版をインストールしようとすると、このエラーを得ていました。

/usr/lib/gcc/i686-linux-gnu/4.6.1/include/emmintrin.h:32:3: error: #error "SSE2 
instruction set not enabled" 
In file included from /home/bkhelifa/Downloads/software/gazebo-1.0.0-RC2-x86_64/ 
deps/opende/src/quickstep.cpp:39:0: 
/usr/lib/gcc/i686-linux-gnu/4.6.1/include/xmmintrin.h:32:3: error: #error "SSE i 
nstruction set not enabled" 
/home/bkhelifa/Downloads/software/gazebo-1.0.0-RC2-x86_64/deps/opende/src/quicks 
tep.cpp: In function ‘dReal dot6(dRealPtr, dRealPtr)’: 
/home/bkhelifa/Downloads/software/gazebo-1.0.0-RC2-x86_64/deps/opende/src/quicks 
tep.cpp:537:3: error: ‘__m128d’ was not declared in this scope 
... 

私はすでに、SSEが有効になっていることを確認するために私cmakefileであなたのヘッダファイルチェックの

if (SSE3_FOUND) 
    set (CMAKE_C_FLAGS_ALL "${CMAKE_C_FLAGS_ALL} -msse3") 
endif() 
if (SSSE3_FOUND) 
    set (CMAKE_C_FLAGS_ALL "${CMAKE_C_FLAGS_ALL} -mssse3") 
endif() 
if (SSE4_1_FOUND) 
    set (CMAKE_C_FLAGS_ALL "${CMAKE_C_FLAGS_ALL} -msse4.1") 
endif() 
if (SSE4_2_FOUND) 
    set (CMAKE_C_FLAGS_ALL "${CMAKE_C_FLAGS_ALL} -msse4.2") 
endif() 
+3

エラーメッセージが表示されたら、何をしようとしているのか忘れてしまいました。 –

+7

'-msse'をGCCに渡してみてください。 '-msse2'、' -msse3'など、必要なものを探します。 – Mysticial

+2

gccフラグ-march = nativeまたは-msse2/-msse3/-mssse3/-msse4.1を試しましたか? – Krystian

答えて

6

一つを、このオプションを持っています。 if文が機能していないようです。

-march=nativeを追加すると、プロセッサに基づいて最適なCPUアーチとフラグを選択するか、またはdistccに便利な-march=corei7 -mavx -mpclmulを明示的に使用できます。また、-mfpmath=sse/-mfpmath=387は浮動小数点演算のためのSSE/x87命令を生成するようにコンパイラに指示します。お使いのプロセッサによってはどちらか速いかもしれませんが、Intelプロセッサは通常SSEより優れていると思います。

ネイティブフラグを使用してgccが有効になっているものを確認する場合は、gcc -march=native -Q --help=target -vを実行します。

1

私はちょうど/usr/ports/audio/soundtouchに「Makefileの」にこれを追加することによって、FreeBSD上で、これを建て:

CC=    gcc46 
CXX=   g++46 
CPP=   cpp46 
CFLAGS+=  -msse 

私は「フォノンのgstreamer」プラグインの残りの部分はこれでコンパイルしたいと考えています。

2

私は同じエラーが発生し、私は適切な解決策を見つけたと思います!

問題は、emmintrin.hに含まれていることです。私も同じことをしました。警告:「SSE2は」再定義[デフォルトで有効になって]

だから私はどこを調査しようとした私は、このファイルをインクルードする前SSE2SSEMMXを定義した場合詳細は何ですか、私は、次のメッセージが表示されましたSSE2が定義および/または使用されています。このファイルがx86intrin.hに含まれていることがわかりました。このファイルをインクルードし、-msse *フラグに従って、適切な* intrin.hファイルが自動的にインクルードされます。

私にとってうまく機能します(g ++ 4.7.2-5)。

私は助けてくれることを願っています!

+0

は魅力のように動作します –

関連する問題