OpenMp与IOS / Android的兼容性

我想做什么:

我正在研究C / c ++代码,以便为所有平台构建产品(I OS / Android / Windows(移动/台式机)/ Mac / Linux

到目前为止我做了什么:

是的,有许多在线链接谈论OpenMp与不同处理器和操作系统的兼容性,但很难从中得出合乎逻辑的结论,因为许多是较旧的文章或post,尤其是移动目标。

参考: 链接

根据我的分析,是的, openMp可以与所有桌面操作系统(Windows / Mac / Linux)一起使用,现在几乎所有计算机都有多核处理器。 所以根本不会有任何问题。

任何人都可以帮我找到以下事情的答案吗?

  1. OpenMp是否适用于Apple设备 (Ipad / iphone )? 如果是,是否有任何特定设备与OpenMP不兼容? 似乎OpenMP在IOS中一直活跃,直到Xcode 4.4。 但是,在最新版本的xcode中,我无法看到OpenMP的任何选项。 例如: 链接

  2. 我希望所有高端Android手机都拥有超过1个内核和基于ARM的内核 。 根据我的观点,openMp应该在NDK构建的帮助下与Android平台一起使用。 我的理解是否正确?

我无法回答1.因为我没有任何ios设备也没有开发环境。

关于2.是的,所有高端Android设备都有超过1个核心。 实际上很难找到只有1核心的低端Android设备。 但并非所有Android设备都是基于arm的,还有双核和四核x86和x86_64设备以及arm64-v8a设备。

NDK支持所有这些架构,自第9版以来也支持openmp。 使用gcc(默认情况下是编译器),并将-fopenmp添加到Android.mk Makefile中的NDK模块的CFLAGS和LDFLAGS:

 include $(CLEAR_VARS) LOCAL_MODULE := yourmodule LOCAL_SRC_FILES := yourmodule.c LOCAL_CFLAGS += -fopenmp LOCAL_LDFLAGS += -fopenmp include $(BUILD_SHARED_LIBRARY)