#erreur “jeu d'instructions SSE2 pas activé” lorsque y compris <emmintrin.h>

Im essayant de compiler en C++ code avec cmake et de faire qui utilise le comprennent <emmintrin.h> et obtient l'erreur:

 #error "SSE2 instruction set not enabled"

J'ai un processeur Intel Celeron Dual Core processeur avec un Linux (Mint) système (Noyau 3.5).

Selon Wikipédia, le Celeron Dual Core est capable d'exécuter des instructions SSE2 et le sse2 indicateur est défini selon /proc/cpuinfo. Mais l'auteur de cette question mentionne limitée de l'ESS support de la technologie Intel Celeron.

J'ai déjà essayé d'utiliser de l'ESS dans les options du compilateur dans mon CMakeLists.txt:

set(CMAKE_C_FLAGS ${CMAKE_C_FLAGS} "-msse -msse2 -msse3")

..mais rien n'a changé. cmake . fonctionne très bien mais make donne le message d'erreur ci-dessus.

Dois-je changer les paramètres dans CMakeLists.txt ou ne le Celeron Dual Core tout simplement pas (entièrement) de support SSE2?

Avez-vous vérifié les paramètres de votre BIOS? techarp.com/showfreebog.aspx?lang=0&bogno=259
Oui, mon BIOS n'a pas de paramètres de l'activation ou de la désactivation de l'ESS.
cmake et n'a pas de carte un-à-un. Si vous utilisez makefile pour faire, pls assurez-vous qu'il a obtenu ces SSE2 drapeaux.
Avez-vous essayé set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -msse -msse2 -msse3") (noter la position de l'guillemets) ou set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -msse -msse2 -msse3")?
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -msse -msse2 -msse3") fonctionne! Merci!!!! Avez-vous une idée pourquoi? Et s'il vous plaît poster un commentaire en tant que réponse afin que je puisse l'accepter...

OriginalL'auteur Suzana | 2013-05-07