我使用 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] 我该如何处理语法错误?
最佳答案
可能是编译器不喜欢 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 ... */
}
关于c++ - 我如何在android studio中使用openmp,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31715060/