【问题标题】:Matlab mex file compilation error -- "SSE2 instruction set not enabled"Matlab mex 文件编译错误——“SSE2 指令集未启用”
【发布时间】:2013-02-18 00:00:19
【问题描述】:

在 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

【问题讨论】:

  • 原因是您使用的是 sse2 内在函数而没有启用 sse2。解决方法是启用 sse2。
  • 如何启用 sse2?
  • 好问题。我想如果你只是设置了正确的 -march,它会附带 sse2。你也可以试试-msse2。以下是详细信息:gcc.gnu.org/onlinedocs/gcc/i386-and-x86_002d64-Options.html

标签: matlab gcc mex


【解决方案1】:

试试这个:

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

【讨论】:

    【解决方案2】:

    Cabaf 的回答没有按预期工作。但是让我的工作很有帮助。

    这对我有用:

    mex 'CXXFLAGS=-msse2 -msse' 文件名.cpp

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-08-10
      • 2013-04-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多