【问题标题】:How can I use openmp in android studio如何在 android studio 中使用 openmp
【发布时间】:2015-10-21 07:06:54
【问题描述】:

我使用 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... */
}

但由于 [#pragma omp parallel for] 导致 gradle build 完成并出现错误 如何处理语法错误?

【问题讨论】:

  • 你不能用好旧的ndk-build吗?

标签: c++ android-ndk openmp


【解决方案1】:

可能是编译器不喜欢 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 ... */
}

【讨论】:

    猜你喜欢
    • 2011-01-24
    • 2018-03-27
    • 1970-01-01
    • 2021-08-29
    • 2014-11-14
    • 2014-04-10
    • 2014-01-20
    • 2017-06-18
    • 2016-07-18
    相关资源
    最近更新 更多