2016-05-11 15 views
1

Android NDKとインテルTBBを搭載したAndroidアプリを開発するための作業用の.soライブラリを取得する際にいくつかの重大な問題を発見しました。 基本的に私はAndroid用のバージョン4.4 Update 4バンドルをダウンロードし、そこにある手順に従っています(ドキュメントが正しくないので...)。Android用のインテルTBBをコンパイルする - ARMv7 ARMv8 MIPS

問題は、armelabi-XXXまたはmipsフォルダに必要な.soがないため、コンパイル時にx86およびx86_64 .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フォルダにコピーしてビルドを有効にします。

他の欠落しているディレクトリについても同じです。

私はAndroidスタジオで使用することができ、エミュレータで動作するx86とx86_64のキューを提供します。./ndk-build.cmd tbb target=android

私はエミュレータで自分のアプリケーションを正しくテストすることはできますが、私のパーソナルデバイスでは動作させることはできません。 私はここで何が欠けていますか?

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) 

感謝。

答えて

1

'jni/Application.mk'で確認できるように、ターゲット 'ia32'、 'intel64'、 'arm'、 'arm64'を使用できます。

C:\TEMP\tbb44_20160413oss\src>ndk-build.cmd tbb tbbmalloc target=android arch=arm tbb_os=windows

+0

こんにちは、返信いただきありがとうございます:

また、それはあなたがこのようなあなたのmakeコマンドにtbb_os=windowsを追加する必要がありますので、Windowsプラットフォーム上に構築しようとしているように見えます。私は詳細を見てきましたが、プロジェクトのルートの中に/ srcディレクトリはありません。つまり、/ tbb44_20160413oss/srcは存在しません。また、Application.mkファイルに/ jniフォルダもありません。 私は現在Linux Mint x64で動作しています! – fiipi

+0

私がそこにコピーした2つのファイルは、自分のプロジェクトのファイルです。プロジェクトのディレクトリに/ tbb44_20160413oss/lib/androidで見つかった.soをコピーしましたが、そこに述べたように、すべてのアーキテクチャ... – fiipi

+0

https://www.threadingbuildingblocks.org/downloadから_Source_パッケージをダウンロードしてください。 バイナリパッケージがあるようです。 –

関連する問題