Как собрать платиновый стек UPnP с Android NDK? - PullRequest
1 голос
/ 07 декабря 2010

У меня проблема со сборкой стека Platinum UPnP с Android NDK на MacOSX 10.6.5.

Я скачал последнюю версию Android NDK для Mac с здесь , установленSCons (для сборки) и загрузка последней версии Platinum с их веб-сайта.

Затем я установил 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: 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

1 Ответ

1 голос
/ 07 декабря 2010

Помимо проблемы host-setup.sh, похоже, что Platinum использует собственную систему сборки на основе SCons, которая основана на пути компилятора, содержащего arm-eabi-4.4.0.Это изменилось и в последней версии 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/.Это должно скомпилировать много - это было здесь.

...