Android ndk 如何在android本机代码中并行运行OpenMP?
我目前正在使用OpenMP的#pragma将Android应用程序的本机循环代码分发到并行线程,如下所示:Android ndk 如何在android本机代码中并行运行OpenMP?,android-ndk,openmp,Android Ndk,Openmp,我目前正在使用OpenMP的#pragma将Android应用程序的本机循环代码分发到并行线程,如下所示: #pragma omp parallel shared(variable1) shared(variable2) shared(variable3) private(array_1) private(array_1) private(array_1) { LOG(INFO) << "Running inside thread: " <<
#pragma omp parallel shared(variable1) shared(variable2) shared(variable3) private(array_1) private(array_1) private(array_1)
{
LOG(INFO) << "Running inside thread: " << omp_get_thread_num();
#pragma omp for
for (int c = 1; c <= itrloopLim; c++) {
...
}
}
我遇到了完全相同的问题,编译时没有错误,但应用程序在启动时立即崩溃 事实证明,您需要使用“-static openmp-fopenmp”标志。基本上,您的构建梯度必须如下所示:
externalNativeBuild {
cmake {
arguments "-DANDROID_ARM_NEON=ON"
cppFlags "-static-openmp -fopenmp"
}
第一行是说您没有在机器上安装OpenMP运行时。。。(您可能需要libomp.so)。
externalNativeBuild {
cmake {
arguments "-DANDROID_ARM_NEON=ON"
cppFlags "-static-openmp -fopenmp"
}