我想在MATLAB中运行mex -setup
,但首先我必须从MatConvNet版本matconvnet-1.0-beta24
运行vl_compilenn
。当我运行vl_compilenn
时,出现错误:
C:/ProgramData/MATLAB/SupportPackages/R2018b_1/3P.instrset/mingw_w64.instrset/lib/gcc/x86_64-w64-mingw32/6.3.0/include/tmmintrin.h:
In function '__m64 _mm_alignr_pi8(__m64, __m64, int)':
C:/ProgramData/MATLAB/SupportPackages/R2018b_1/3P.instrset/mingw_w64.instrset/lib/gcc/x86_64-w64-mingw32/6.3.0/include/tmmintrin.h:195:27:
error: '__builtin_ia32_palignr' was not declared in this scope
(__v1di)__Y, __N * 8);
^
C:/ProgramData/MATLAB/SupportPackages/R2018b_1/3P.instrset/mingw_w64.instrset/lib/gcc/x86_64-w64-mingw32/6.3.0/include/tmmintrin.h:
In function '__m64 _mm_abs_pi32(__m64)':
C:/ProgramData/MATLAB/SupportPackages/R2018b_1/3P.instrset/mingw_w64.instrset/lib/gcc/x86_64-w64-mingw32/6.3.0/include/tmmintrin.h:241:51:
error: '__builtin_ia32_pabsd' was not declared in this scope
return (__m64) __builtin_ia32_pabsd ((__v2si)__X);
^
Error in vl_compilenn>mex_compile (line 529)
mex(mopts{:}) ;
Error in vl_compilenn (line 490)
mex_compile(opts, srcs{i}, objfile, flags.mexcc) ;
对此可以做些什么?
根据 gcc 内部函数的文档,您必须使用标志 '-mssse3' 进行编译。
我会尝试将此标志添加到编译标志集flags.mexcc
中。我不能给你更多细节,因为母版是从你的版本演变而来的,脚本vl_compilenn
已经进化而来。