Matlab mex文件编译错误 - “未启用SSE2指令集”

时间:2013-02-18 00:00:20

标签: matlab gcc mex

在Matlab中编译mex文件的工具箱时,收到以下错误:

In file included from /home/josh/Desktop/Project/code/toolbox/channels/private/sse.hpp:9:0,
                 from /home/josh/Desktop/Project/code/toolbox/channels/private/convConst.cpp:9:
/usr/lib/gcc/i686-linux-gnu/4.6/include/emmintrin.h:32:3: error: #error "SSE2 instruction set not enabled"
In file included from /home/josh/Desktop/Project/code/toolbox/channels/private/convConst.cpp:9:0:
/home/josh/Desktop/Project/code/toolbox/channels/private/sse.hpp:15:1: error: ‘__m128’ does not name a type
/home/josh/Desktop/Project/code/toolbox/channels/private/sse.hpp:16:1: error: ‘__m128’ does not name a type
/home/josh/Desktop/Project/code/toolbox/channels/private/sse.hpp:17:1: error: ‘__m128i’ does not name a type
/home/josh/Desktop/Project/code/toolbox/channels/private/sse.hpp:18:1: error: ‘__m128’ does not name a type
/home/josh/Desktop/Project/code/toolbox/channels/private/sse.hpp:19:1: error: ‘__m128’ does not name a type
/home/josh/Desktop/Project/code/toolbox/channels/private/sse.hpp:20:1: error: ‘__m128’ does not name a type
/home/josh/Desktop/Project/code/toolbox/channels/private/sse.hpp:21:1: error: ‘__m128’ does not name a type
/home/josh/Desktop/Project/code/toolbox/channels/private/sse.hpp:22:1: error: ‘__m128’ does not name a type
/home/josh/Desktop/Project/code/toolbox/channels/private/sse.hpp:23:1: error: ‘__m128’ does not name a type
/home/josh/Desktop/Project/code/toolbox/channels/private/sse.hpp:26:1: error: ‘__m128i’ does not name a type
/home/josh/Desktop/Project/code/toolbox/channels/private/sse.hpp:27:1: error: ‘__m128’ does not name a type
/home/josh/Desktop/Project/code/toolbox/channels/private/sse.hpp:28:1: error: ‘__m128’ does not name a type
/home/josh/Desktop/Project/code/toolbox/channels/private/sse.hpp:30:1: error: ‘__m128’ does not name a type
/home/josh/Desktop/Project/code/toolbox/channels/private/sse.hpp:32:1: error: ‘__m128’ does not name a type
/home/josh/Desktop/Project/code/toolbox/channels/private/sse.hpp:33:1: error: ‘__m128’ does not name a type
/home/josh/Desktop/Project/code/toolbox/channels/private/sse.hpp:34:1: error: ‘__m128’ does not name a type
/home/josh/Desktop/Project/code/toolbox/channels/private/sse.hpp:35:1: error: ‘__m128’ does not name a type
/home/josh/Desktop/Project/code/toolbox/channels/private/sse.hpp:36:1: error: ‘__m128’ does not name a type
/home/josh/Desktop/Project/code/toolbox/channels/private/sse.hpp:37:1: error: ‘__m128’ does not name a type
/home/josh/Desktop/Project/code/toolbox/channels/private/sse.hpp:38:1: error: ‘__m128’ does not name a type
/home/josh/Desktop/Project/code/toolbox/channels/private/sse.hpp:39:1: error: ‘__m128’ does not name a type
/home/josh/Desktop/Project/code/toolbox/channels/private/sse.hpp:40:1: error: ‘__m128’ does not name a type
/home/josh/Desktop/Project/code/toolbox/channels/private/sse.hpp:41:1: error: ‘__m128’ does not name a type
/home/josh/Desktop/Project/code/toolbox/channels/private/sse.hpp:42:1: error: ‘__m128’ does not name a type
/home/josh/Desktop/Project/code/toolbox/channels/private/sse.hpp:45:1: error: ‘__m128’ does not name a type
/home/josh/Desktop/Project/code/toolbox/channels/private/sse.hpp:46:1: error: ‘__m128i’ does not name a type
/home/josh/Desktop/Project/code/toolbox/channels/private/sse.hpp:47:1: error: ‘__m128’ does not name a type
/home/josh/Desktop/Project/code/toolbox/channels/private/sse.hpp:48:1: error: ‘__m128’ does not name a type
/home/josh/Desktop/Project/code/toolbox/channels/private/sse.hpp:49:1: error: ‘__m128’ does not name a type
/home/josh/Desktop/Project/code/toolbox/channels/private/sse.hpp:52:1: error: ‘__m128’ does not name a type
/home/josh/Desktop/Project/code/toolbox/channels/private/sse.hpp:53:1: error: ‘__m128i’ does not name a type
/home/josh/Desktop/Project/code/toolbox/channels/private/sse.hpp:56:1: error: ‘__m128’ does not name a type
/home/josh/Desktop/Project/code/toolbox/channels/private/sse.hpp:57:1: error: ‘__m128i’ does not name a type
/home/josh/Desktop/Project/code/toolbox/channels/private/convConst.cpp: In function ‘void convBox(float*, float*, int, int, int, int, int)’:
/home/josh/Desktop/Project/code/toolbox/channels/private/convConst.cpp:35:67: error: ‘LDu’ was not declared in this scope
/home/josh/Desktop/Project/code/toolbox/channels/private/convConst.cpp:35:68: error: ‘INC’ was not declared in this scope
/home/josh/Desktop/Project/code/toolbox/channels/private/convConst.cpp:36:60: error: ‘LD’ was not declared in this scope
/home/josh/Desktop/Project/code/toolbox/channels/private/convConst.cpp:36:61: error: ‘MUL’ was not declared in this scope
/home/josh/Desktop/Project/code/toolbox/channels/private/convConst.cpp:36:75: error: ‘LDu’ was not declared in this scope
/home/josh/Desktop/Project/code/toolbox/channels/private/convConst.cpp:36:76: error: ‘SUB’ was not declared in this scope
/home/josh/Desktop/Project/code/toolbox/channels/private/convConst.cpp:36:77: error: ‘MUL’ was not declared in this scope
/home/josh/Desktop/Project/code/toolbox/channels/private/convConst.cpp:36:77: error: declaration of ‘<typeprefixerror>MUL’
/home/josh/Desktop/Project/code/toolbox/channels/private/convConst.cpp:36:61: error: conflicts with previous declaration ‘<typeprefixerror>MUL’
/home/josh/Desktop/Project/code/toolbox/channels/private/convConst.cpp:36:78: error: ‘STR’ was not declared in this scope
/home/josh/Desktop/Project/code/toolbox/channels/private/convConst.cpp:45:64: error: ‘LDu’ was not declared in this scope
/home/josh/Desktop/Project/code/toolbox/channels/private/convConst.cpp:45:76: error: ‘SUB’ was not declared in this scope
/home/josh/Desktop/Project/code/toolbox/channels/private/convConst.cpp:45:77: error: ‘MUL’ was not declared in this scope
/home/josh/Desktop/Project/code/toolbox/channels/private/convConst.cpp:45:78: error: ‘DEC’ was not declared in this scope
/home/josh/Desktop/Project/code/toolbox/channels/private/convConst.cpp: In function ‘void conv11Y(float*, float*, int, int, int)’:
/home/josh/Desktop/Project/code/toolbox/channels/private/convConst.cpp:61:51: error: ‘LDu’ was not declared in this scope
/home/josh/Desktop/Project/code/toolbox/channels/private/convConst.cpp:61:51: error: ‘ADD’ was not declared in this scope
/home/josh/Desktop/Project/code/toolbox/channels/private/convConst.cpp:61:74: error: ‘_mm_shuffle_ps’ was not declared in this scope
/home/josh/Desktop/Project/code/toolbox/channels/private/convConst.cpp:61:75: error: ‘STR’ was not declared in this scope
/home/josh/Desktop/Project/code/toolbox/channels/private/convConst.cpp:67:37: error: ‘LDu’ was not declared in this scope
/home/josh/Desktop/Project/code/toolbox/channels/private/convConst.cpp:67:37: error: ‘ADD’ was not declared in this scope
/home/josh/Desktop/Project/code/toolbox/channels/private/convConst.cpp:67:45: error: ‘STR’ was not declared in this scope
/home/josh/Desktop/Project/code/toolbox/channels/private/convConst.cpp: In function ‘void conv11(float*, float*, int, int, int, int, int)’:
/home/josh/Desktop/Project/code/toolbox/channels/private/convConst.cpp:80:61: error: ‘LDu’ was not declared in this scope
/home/josh/Desktop/Project/code/toolbox/channels/private/convConst.cpp:80:73: error: ‘ADD’ was not declared in this scope
/home/josh/Desktop/Project/code/toolbox/channels/private/convConst.cpp:80:74: error: ‘MUL’ was not declared in this scope
/home/josh/Desktop/Project/code/toolbox/channels/private/convConst.cpp:80:76: error: ‘STR’ was not declared in this scope
/home/josh/Desktop/Project/code/toolbox/channels/private/convConst.cpp: In function ‘void convTri(float*, float*, int, int, int, int, int)’:
/home/josh/Desktop/Project/code/toolbox/channels/private/convConst.cpp:112:54: error: ‘LDu’ was not declared in this scope
/home/josh/Desktop/Project/code/toolbox/channels/private/convConst.cpp:112:55: error: ‘STR’ was not declared in this scope
/home/josh/Desktop/Project/code/toolbox/channels/private/convConst.cpp:112:56: error: ‘STR’ was not declared in this scope
/home/josh/Desktop/Project/code/toolbox/channels/private/convConst.cpp:112:56: error: declaration of ‘<typeprefixerror>STR’
/home/josh/Desktop/Project/code/toolbox/channels/private/convConst.cpp:112:55: error: conflicts with previous declaration ‘<typeprefixerror>STR’
/home/josh/Desktop/Project/code/toolbox/channels/private/convConst.cpp:113:75: error: ‘LDu’ was not declared in this scope
/home/josh/Desktop/Project/code/toolbox/channels/private/convConst.cpp:113:76: error: ‘INC’ was not declared in this scope
/home/josh/Desktop/Project/code/toolbox/channels/private/convConst.cpp:113:77: error: ‘INC’ was not declared in this scope
/home/josh/Desktop/Project/code/toolbox/channels/private/convConst.cpp:113:77: error: declaration of ‘<typeprefixerror>INC’
/home/josh/Desktop/Project/code/toolbox/channels/private/convConst.cpp:113:76: error: conflicts with previous declaration ‘<typeprefixerror>INC’
/home/josh/Desktop/Project/code/toolbox/channels/private/convConst.cpp:114:61: error: ‘LD’ was not declared in this scope
/home/josh/Desktop/Project/code/toolbox/channels/private/convConst.cpp:114:62: error: ‘MUL’ was not declared in this scope
/home/josh/Desktop/Project/code/toolbox/channels/private/convConst.cpp:114:72: error: ‘SUB’ was not declared in this scope
/home/josh/Desktop/Project/code/toolbox/channels/private/convConst.cpp:114:74: error: ‘MUL’ was not declared in this scope
/home/josh/Desktop/Project/code/toolbox/channels/private/convConst.cpp:114:74: error: declaration of ‘<typeprefixerror>MUL’
/home/josh/Desktop/Project/code/toolbox/channels/private/convConst.cpp:114:62: error: conflicts with previous declaration ‘<typeprefixerror>MUL’
/home/josh/Desktop/Project/code/toolbox/channels/private/convConst.cpp:114:75: error: ‘STR’ was not declared in this scope
/home/josh/Desktop/Project/code/toolbox/channels/private/convConst.cpp:115:36: error: ‘STR’ was not declared in this scope
/home/josh/Desktop/Project/code/toolbox/channels/private/convConst.cpp:126:9: error: ‘__m128’ was not declared in this scope
/home/josh/Desktop/Project/code/toolbox/channels/private/convConst.cpp:126:16: error: expected ‘;’ before ‘del’
/home/josh/Desktop/Project/code/toolbox/channels/private/convConst.cpp:127:37: error: ‘del’ was not declared in this scope
/home/josh/Desktop/Project/code/toolbox/channels/private/convConst.cpp:127:40: error: ‘INC’ was not declared in this scope
/home/josh/Desktop/Project/code/toolbox/channels/private/convConst.cpp:127:42: error: ‘MUL’ was not declared in this scope
/home/josh/Desktop/Project/code/toolbox/channels/private/convConst.cpp:127:43: error: ‘INC’ was not declared in this scope
/home/josh/Desktop/Project/code/toolbox/channels/private/convConst.cpp:127:43: error: declaration of ‘<typeprefixerror>INC’
/home/josh/Desktop/Project/code/toolbox/channels/private/convConst.cpp:127:40: error: conflicts with previous declaration ‘<typeprefixerror>INC’
/home/josh/Desktop/Project/code/toolbox/channels/private/convConst.cpp: In function ‘void convTri1Y(float*, float*, int, float, int)’:
/home/josh/Desktop/Project/code/toolbox/channels/private/convConst.cpp:143:51: error: ‘LDu’ was not declared in this scope
/home/josh/Desktop/Project/code/toolbox/channels/private/convConst.cpp:143:51: error: ‘MUL’ was not declared in this scope
/home/josh/Desktop/Project/code/toolbox/channels/private/convConst.cpp:143:51: error: ‘ADD’ was not declared in this scope
/home/josh/Desktop/Project/code/toolbox/channels/private/convConst.cpp:143:51: error: ‘ADD’ was not declared in this scope
/home/josh/Desktop/Project/code/toolbox/channels/private/convConst.cpp:143:51: error: declaration of ‘<typeprefixerror>ADD’
/home/josh/Desktop/Project/code/toolbox/channels/private/convConst.cpp:143:51: error: conflicts with previous declaration ‘<typeprefixerror>ADD’
/home/josh/Desktop/Project/code/toolbox/channels/private/convConst.cpp:143:70: error: ‘_mm_shuffle_ps’ was not declared in this scope
/home/josh/Desktop/Project/code/toolbox/channels/private/convConst.cpp:143:71: error: ‘STR’ was not declared in this scope
/home/josh/Desktop/Project/code/toolbox/channels/private/convConst.cpp:149:35: error: ‘LDu’ was not declared in this scope
/home/josh/Desktop/Project/code/toolbox/channels/private/convConst.cpp:149:35: error: ‘MUL’ was not declared in this scope
/home/josh/Desktop/Project/code/toolbox/channels/private/convConst.cpp:149:35: error: ‘ADD’ was not declared in this scope
/home/josh/Desktop/Project/code/toolbox/channels/private/convConst.cpp:149:35: error: ‘ADD’ was not declared in this scope
/home/josh/Desktop/Project/code/toolbox/channels/private/convConst.cpp:149:35: error: declaration of ‘<typeprefixerror>ADD’
/home/josh/Desktop/Project/code/toolbox/channels/private/convConst.cpp:149:35: error: conflicts with previous declaration ‘<typeprefixerror>ADD’
/home/josh/Desktop/Project/code/toolbox/channels/private/convConst.cpp:149:42: error: ‘STR’ was not declared in this scope
/home/josh/Desktop/Project/code/toolbox/channels/private/convConst.cpp: In function ‘void convTri1(float*, float*, int, int, int, float, int)’:
/home/josh/Desktop/Project/code/toolbox/channels/private/convConst.cpp:163:41: error: ‘LDu’ was not declared in this scope
/home/josh/Desktop/Project/code/toolbox/channels/private/convConst.cpp:163:59: error: ‘MUL’ was not declared in this scope
/home/josh/Desktop/Project/code/toolbox/channels/private/convConst.cpp:163:60: error: ‘ADD’ was not declared in this scope
/home/josh/Desktop/Project/code/toolbox/channels/private/convConst.cpp:163:72: error: ‘ADD’ was not declared in this scope
/home/josh/Desktop/Project/code/toolbox/channels/private/convConst.cpp:163:72: error: declaration of ‘<typeprefixerror>ADD’
/home/josh/Desktop/Project/code/toolbox/channels/private/convConst.cpp:163:60: error: conflicts with previous declaration ‘<typeprefixerror>ADD’
/home/josh/Desktop/Project/code/toolbox/channels/private/convConst.cpp:163:73: error: ‘MUL’ was not declared in this scope
/home/josh/Desktop/Project/code/toolbox/channels/private/convConst.cpp:163:73: error: declaration of ‘<typeprefixerror>MUL’
/home/josh/Desktop/Project/code/toolbox/channels/private/convConst.cpp:163:59: error: conflicts with previous declaration ‘<typeprefixerror>MUL’
/home/josh/Desktop/Project/code/toolbox/channels/private/convConst.cpp:163:74: error: ‘STR’ was not declared in this scope

    mex: compile of ' "/home/josh/Desktop/Project/code/toolbox/channels/private/convConst.cpp"' failed.

导致此错误的原因是什么?如何解决?

我使用Matlab 7.10.0 R2010a和gcc版本4.6.3-1ubuntu5运行Ubuntu 12.04

2 个答案:

答案 0 :(得分:2)

试试这个:

 edit toolboxCompile.m file and replace "opts = {'-output'}" with
   opts = {'CXXFLAGS=-msse2 -msse' '-output'};

答案 1 :(得分:1)

Cabaf的答案没有按预期发挥作用。但让我的工作变得有帮助。

这对我有用:

  

mex'CXXFLAGS = -msse2 -msse'fileName.cpp