2013-02-15 2 views
4

Я пытаюсь работать некоторый скрытый код Марковым в C++ с использованием библиотеки HMMlib изинструкция C++ SSE3 набор не включен

http://www.cs.au.dk/~asand/?page_id=152 

Я использую Ubuntu 12.04, с GCC/г ++ 4.6

Моя инструкция шаг компиляции является:

g++ -I/usr/local/boost_1_52_0 -I../ MAIN.cpp 

Это производит следующее сообщение об ошибке:

In file included from ../HMMlib/allocator_traits.hpp:25:0, 
      from ../HMMlib/hmm_table.hpp:25, 
      from MAIN.cpp:1: 
/usr/lib/gcc/i686-linux-gnu/4.6/include/pmmintrin.h:32:3: error: #error "SSE3  instruction set not enabled" 
In file included from ../HMMlib/hmm_table.hpp:25:0, 
      from MAIN.cpp:1: 
../HMMlib/allocator_traits.hpp:50:33: error: ‘__m128d’ was not declared in this scope 
../HMMlib/allocator_traits.hpp:50:40: error: template argument 2 is invalid 
../HMMlib/allocator_traits.hpp:77:32: error: ‘__m128’ was not declared in this scope 
../HMMlib/allocator_traits.hpp:77:38: error: template argument 2 is invalid 
In file included from ../HMMlib/hmm_table.hpp:26:0, 
      from MAIN.cpp:1: 
../HMMlib/operator_traits.hpp:112:32: error: ‘__m128d’ was not declared in this scope 
../HMMlib/operator_traits.hpp:112:39: error: template argument 2 is invalid 
../HMMlib/operator_traits.hpp:205:31: error: ‘__m128’ was not declared in this scope 
../HMMlib/operator_traits.hpp:205:37: error: template argument 2 is invalid 
In file included from ../HMMlib/hmm_table.hpp:27:0, 
      from MAIN.cpp:1: 
../HMMlib/float_traits.hpp:37:13: error: ‘__m128’ does not name a type 
../HMMlib/float_traits.hpp:43:13: error: ‘__m128d’ does not name a type 
In file included from ../HMMlib/hmm.hpp:34:0, 
      from MAIN.cpp:3: 
../HMMlib/sse_operator_traits.hpp:63:35: error: ‘__m128’ was not declared in this scope 
../HMMlib/sse_operator_traits.hpp:63:41: error: template argument 2 is invalid 
../HMMlib/sse_operator_traits.hpp:95:36: error: ‘__m128d’ was not declared in this scope 
../HMMlib/sse_operator_traits.hpp:95:43: error: template argument 2 is invalid 

Я совершенно не знаю, что означают эти ошибки, и как решить их

+1

Добавить '-march = native' скомпилировать для собственного процессора, или выберите соответствующий' -march' вариант из 'человек gcc' (он должен быть процессор, поддерживающий SSE3). –

ответ

7

Вы должны включить SSE3 встроенные функции НКУ с параметром командной строки. Попробуйте скомпилировать с

g++ -msse3 -I/usr/local/boost_1_52_0 -I../ MAIN.cpp 

или выбора набора команд процессором

g++ -march=core2 -I/usr/local/boost_1_52_0 -I../ MAIN.cpp 

Ответ на ваш комментарий: -march=native выбирает набор команд процессора вы в настоящее время работает.

Обратите внимание, что -msse3 уже выбирает его подмножества -msse2 и -msse

+0

возвращает «g ++: ошибка: непризнанная опция« -sese3 »» –

+0

, но -march = native работал, но что это делает? –

+0

@AdityaSihag: это была ошибка с моей стороны, я исправил, что – jpalecek

Смежные вопросы