我在使用matlab mexfunction和openMP指令时遇到问题。我找到了一些相关的主题,但没有一个能够帮助我。
我想使用带有mex-Function的openMP来创建.mexw64文件。但是当我使用我的matlab函数时,matlab会以残酷的方式崩溃。
论文是我的代码:
C ++代码
#include "mex.h"
#include <iostream>
#include <omp.h>
void mexFunction(int nlhs,
mxArray *plhs[],
int nrhs,
const mxArray *prhs[])
{
#pragma omp parallel default(shared)
{
}
mexPrintf("Hi !\n");
}
Matlab代码:
clear all, close all, clc;
testopenMP();
clear mex;
当我调用我的函数testopenMP时,matlab崩溃了。但是,如果我评论&#34; #pragma omp parallel&#34;一切正常:
#include "mex.h"
#include <iostream>
#include <omp.h>
void mexFunction(int nlhs,
mxArray *plhs[],
int nrhs,
const mxArray *prhs[])
{
//#pragma omp parallel default(shared)
{
}
mexPrintf("Hi !\n");
}
另一个重要的一点,pragma omp并行指令,有时程序有效,有时会崩溃...... 当我用deboggeur逐步运行程序时,每个人都可以正常工作。我真的输了
你有什么想法崩溃matlab?任何帮助都是welcolme