1

MacOSX 10.6.5 で Android NDK を使用して Platinum UPnP スタックを構築する際に問題があります。

ここから Android NDK for Mac の最新バージョンをダウンロードし、SCons (ビルド用) をインストールし、最新バージョンの Platinum を Web サイトからダウンロードしました。

ANDROID_NDK_HOME を NDK ルート ディレクトリにセットアップしてビルドしようとしたときよりも、
scons -Q target=arm-android-linuxを実行すると、次のエラーが発生しました。

(...) 例外: ANDROID NDK が構成されていません。host-setup.sh を使用して構成します: (...)

問題は、このファイルがドキュメントに従って Android NDK から削除されたことです。

以前のリリースでは、「build/host-setup.sh」スクリプトを実行して NDK を構成する必要がありました。ただし、このステップはリリース 4 で削除されました。

そして今、私はちょっと立ち往生していて、この問題を解決する方法がわかりません.

アップデート:

NDK r3 (ファイルが見つからない最後のもの) をダウンロードし、host-setup.sh で構成しました

しかし、ターゲットをビルドしようとすると、しばらく実行されてからクラッシュします。

Build/Targets/arm-android-linux/Debug/Source/Tests/FileMediaServer/FileMediaServerTest.o: 関数「main」内:
/Users/darkh/Platinum-SRC-0-6-3_683/Platinum/Source/Tests/FileMediaServer/FileMediaServerTest.cpp:153: 警告: 警告: gets() は非常に安全ではありません。fgets() の使用を検討してください

Build/Targets/arm-android-linux/Debug/libPltMediaServer.a(PltMediaItem.o): 関数 `PLT_MediaItem::DynamicCast(void const*)' 内:
PltMediaItem.cpp:(.text._ZN13PLT_MediaItem11DynamicCastEPKv[PLT_MediaItem::DynamicCast(void const*)]+0x5c): 「PLT_MediaItem::_class_PLT_MediaItem」への未定義の参照

Build/Targets/arm-android-linux/Debug/libPltMediaServer.a(PltMediaItem.o): 関数 `PLT_MediaContainer::DynamicCast(void const*)' 内:
PltMediaItem.cpp:(.text._ZN18PLT_MediaContainer11DynamicCastEPKv[PLT_MediaContainer::DynamicCast(void const*)]+0x5c): 「PLT_MediaContainer::_class_PLT_MediaContainer」への未定義の参照
collect2: ld が 1 つの終了ステータスを返しました

scons: *** [Build/Targets/arm-android-linux/Debug/FileMediaServerTest] エラー 1
4

1 に答える 1

1

host-setup.sh の問題とは別に、Platinum は arm-eabi-4.4.0 を含むコンパイラのパスに依存する独自の SCons ベースのビルド システムを使用しているようです。これは、最新の Android NDK でも変更されています。

自分でビルド システムをハックするか、r5 用に更新するのを待つ必要があります。探し始めるのに適した場所はファイルですBuild/Targets/arm-android-linux/Config.sconsが、それを起動して実行するために行う必要がある、明らかではない変更がかなりあります。

編集:

r4bで試してみてください。android-ndk-r4b/out/host/config.mk次の内容のファイルを作成します。

HOST_TAG := linux-x86

.. または Mac 上の同等のもの - のディレクトリのandroid-ndk-r4b/build/prebuilt/名前は何でも。それはロットをコンパイルする必要があります-それはここで行いました.

于 2010-12-07T16:42:02.417 に答える