我使用OpenMP的C代码我希望将其作为mex函数包含在MATLAB中。我已经完成了它并在Linux下的MATLAB R2013b中完美运行。但是,我最近阅读了OMPi,根据this article,它击败了大多数商业编译器,主要是我目前使用的gcc。因此,我想利用它。它适用于C代码,但我无法使用mex函数。我尝试了四种方式:
mex
ompicc -k -I/opt/MATLAB/R2013b/extern/include mex_sum_openmp.c
mex
设置详细标记,我获取了有关mex
正在做什么的信息,因此我尝试模仿它:ompicc -k -I/opt/MATLAB/R2013b/extern/include -DMATLAB_MEX_FILE -ansi -D_GNU_SOURCE -fexceptions -fPIC -fno-omit-frame-pointer -pthread -DMX_COMPAT_32 -O -DNDEBUG mex_sum_openmp.c
gcc -I/opt/MATLAB/R2013b/extern/include -DMATLAB_MEX_FILE -ansi -D_GNU_SOURCE -fexceptions -fPIC -fno-omit-frame-pointer -pthread -DMX_COMPAT_32 -O -DNDEBUG mex_sum_openmp_ompi.c
(这是没有-k标志的ompi:首先创建源编译文件然后调用它上面的常规编译器)无论哪种方式,结果都是一样的,一堆警告然后是错误消息。 这是原始的C文件:http://s000.tinyupload.com/?file_id=70221693843831744745,这里是源编译文件:http://s000.tinyupload.com/?file_id=02497191022856307556,这里是警告和错误:http://s000.tinyupload.com/?file_id=93602974698898858427
由于