我如何在android studio中使用openmp

时间:2015-07-30 04:13:23

标签: c++ android-ndk openmp

我使用android-ndk-r10d在android studio中用C ++编码。现在我想使用openmp并将代码添加到Android.mk中:

LOCAL_CFLAGS += -fopenmp
LOCAL_LDFLAGS += -fopenmp

并将代码添加到myapp.cpp:

#include <omp.h>
#pragma omp parallel for
for(int i = 1, ii = 0; i < outImage[0]->height; i+=2, ii = i>>1) {
 /* Do work... */
}

但gradle构建因错误而导致错误[#pragma omp parallel for] 我该如何处理语法错误?

1 个答案:

答案 0 :(得分:0)

可能是编译器不喜欢for()语句的复杂结构。 OpenMP喜欢提前知道步骤数。我也怀疑OpenMP可以处理2个循环变量(i和ii)。尝试使用固定限制的简单循环,如

int kmax = (outImage[0]->height - 1) / 2; // not sure this is right

#pragma omp parallel for
for( int k=0; k<kmax; k++)
{
    int i=k*2 + 1; // not sure this is right
    int ii = i>>1;
    /* Do work ... */
}