编译适用于Android的英特尔TBB-ARMv7 ARMv8 MIPS

Compile Intel TBB for Android - ARMv7 ARMv8 MIPS

本文关键字:TBB-ARMv7 ARMv8 MIPS 英特尔 适用于 Android 编译      更新时间:2023-10-16

我发现在获得一个工作的.so库时遇到了一些严重的困难,以便使用Android NDK和intel TBB开发Android应用程序。基本上,我已经下载了Android版本4.4更新4捆绑包,并遵循了那里的步骤(有点,因为文档不正确…)。

问题是,我在编译时只能获得x86和x86_64.so库,因为那里没有armeabi XXX或mips文件夹和必需的.so。

使用建议的命令./ndk-build.cmd tbb target=android arch=arm不会产生任何结果,事实上它告诉我

/workspace/tbb44_20160413oss/lib/android/mips/libtbb.so库未找到。将mips版本的库复制到/home/filippo/workspace/tbb44_20160413oss/lib/android/mips文件夹以启用其构建。

其他丢失的目录也是如此。

三、只使用./ndk-build.cmd tbb target=android给了我一组目录:x86和x86_64,我可以在Android Studio中使用它们,并与模拟器一起工作。

结果是,我可以在模拟器上正确测试我的应用程序,但无法在我的个人设备上运行。我在这里错过了什么?

Application.mk

APP_ABI := x86 x86_64 // if I choose all, of course it won't find the .so for the other architectures
APP_GNUSTL_FORCE_CPP_FEATURES := exceptions rtti
APP_STL := gnustl_shared

Android.mk

LOCAL_PATH := $(call my-dir)
#
# TBB
#
include $(CLEAR_VARS)
LOCAL_MODULE    := libtbb
LOCAL_SRC_FILES := $(LOCAL_PATH)/$(TARGET_ARCH_ABI)/libtbb.so
include $(PREBUILT_SHARED_LIBRARY)

#
# Main module
#
include $(CLEAR_VARS)
LOCAL_MODULE := myndkapp
LOCAL_SHARED_LIBRARY := libtbb
include $(BUILD_SHARED_LIBRARY)

谢谢。

正如您在'jni/Application.mk'中看到的,您可以使用目标'ia32'、'intel64'、'arm'和'arm64'。

此外,看起来您正试图在Windows平台上进行构建,因此您应该在make命令中添加一个tbb_os=windows,如下所示:

C:TEMPtbb44_20160413osssrc>ndk-build.cmd tbb tbbmalloc target=android arch=arm tbb_os=windows