2010-12-07 36 views
1

J'ai un problème avec la construction de la pile Platinum UPnP avec Android NDK sur MacOSX 10.6.5.Comment construire une pile Platinum UPnP avec Android NDK?

J'ai téléchargé la dernière version d'Android NDK pour Mac à partir de here, installé des SCons (pour la construction) et téléchargé la dernière version de Platinum de leur site Web.

Que je configurer le ANDROID_NDK_HOME à mon NDK répertoire racine et a essayé de construire:
scons -Q target = bras-android-linux et j'obtenu l'erreur suivante:

(...) Exception: ANDROID NDK not configured, use host-setup.sh to configure it: (...)

Le problème est que ce fichier se est retiré de l'Android NDK selon la documentation:

Previous releases required you to run the 'build/host-setup.sh' script to configure the NDK. However, this step has been removed in release 4.

et maintenant, je suis un peu coincé et ne sais pas comment résoudre ce problème.

MISE À JOUR:

J'ai téléchargé le NDK r3 (la dernière avec le fichier manquant) et configuré avec host-setup.sh

Mais lorsque je tente de construire la cible, il fonctionne pendant un certain temps et puis se bloque sur:

 
Build/Targets/arm-android-linux/Debug/Source/Tests/FileMediaServer/FileMediaServerTest.o: In function `main': 
/Users/darkh/Platinum-SRC-0-6-3_683/Platinum/Source/Tests/FileMediaServer/FileMediaServerTest.cpp:153: warning: warning: gets() is very unsafe; consider using fgets() 

Build/Targets/arm-android-linux/Debug/libPltMediaServer.a(PltMediaItem.o): In function `PLT_MediaItem::DynamicCast(void const*)': 
PltMediaItem.cpp:(.text._ZN13PLT_MediaItem11DynamicCastEPKv[PLT_MediaItem::DynamicCast(void const*)]+0x5c): undefined reference to `PLT_MediaItem::_class_PLT_MediaItem' 

Build/Targets/arm-android-linux/Debug/libPltMediaServer.a(PltMediaItem.o): In function `PLT_MediaContainer::DynamicCast(void const*)': 
PltMediaItem.cpp:(.text._ZN18PLT_MediaContainer11DynamicCastEPKv[PLT_MediaContainer::DynamicCast(void const*)]+0x5c): undefined reference to `PLT_MediaContainer::_class_PLT_MediaContainer' 
collect2: ld returned 1 exit status 

scons: *** [Build/Targets/arm-android-linux/Debug/FileMediaServerTest] Error 1 

Répondre

1

en dehors de la question host-setup.sh, il semble que Platinum utilise son propre SCons système de construction basé qui repose sur la trajectoire du bras-eabi-4.4 contenant compilateur .0. Cela a changé dans le dernier Android NDK aussi.

Vous devrez soit pirater le système de construction vous-même, soit attendre qu'ils le mettent à jour pour r5. Un bon endroit pour commencer à chercher serait le fichier Build/Targets/arm-android-linux/Config.scons, mais il y a quelques changements non évidents que vous auriez à faire pour le faire fonctionner.

EDIT:

Essayez avec r4b. Créez un fichier dans android-ndk-r4b/out/host/config.mk dont le contenu est le suivant:

HOST_TAG := linux-x86 

.. ou l'équivalent sur Mac - quel que soit le répertoire dans android-ndk-r4b/build/prebuilt/ est appelé. Cela devrait compiler le lot - il l'a fait ici.

+0

J'ai téléchargé le NDK r3 (le dernier avec host-setup.sh) et je l'ai configuré. J'ai réussi à le faire fonctionner mais après un certain temps j'ai eu une erreur. – darkhie

+0

J'ai modifié manuellement le Config.scons et ai rendu la ligne avec la balise de l'hôte statique. J'ai réussi à le compiler un peu avec r4b mais j'ai de nouveau rencontré l'erreur que j'ai mentionnée dans le message principal. Build/Cibles/arm-android-linux/Debug/libPltMediaServer.a (PltMediaItem.o): Dans la fonction 'PLT_MediaItem :: DynamicCast (void const *) ': /Users/darkh/Platinum-SRC-0-6- 3_683/Platinum/Source/Périphériques/MediaServer/PltMediaItem.h: 244: référence indéfinie à 'PLT_MediaItem :: _ class_PLT_MediaItem ' – darkhie

+0

@darkhie - uf, aucune idée alors. Peut-être un "scons -c" pour nettoyer la précédente crud de construction? A défaut, je pense que la liste de diffusion du platine va être votre meilleur pari :-( – richq