Повышение порта на Android - PullRequest
       13

Повышение порта на Android

14 голосов
/ 03 февраля 2011

Кто-нибудь портировал и использовал Boost на Android?

Я нашел инструмент, который собирает буст для андроида (https://github.com/MysticTreeGames/Boost-for-Android), сборка прошла успешно, и у меня есть статические буст-библиотеки. Но когда я собираюсь использовать его в простом андроидеapp:

#include <jni.h>
#include "boost/thread.hpp"

void f()
{
};

У меня много ошибок компиляции: переопределения, необъявление и т. д. Кажется, это касается заголовков NDK std. Мой Android.mk выглядит так:

LOCAL_PATH := $(call my-dir)

include $(CLEAR_VARS)

TARGET_PLATFORM := android-8

LOCAL_MODULE := Boost

LOCAL_CFLAGS := -DMYSTIC -I$(LOCAL_PATH)/boost/include/ 
LOCAL_LDLIBS := -L$(LOCAL_PATH)/external/boost/lib/

LOCAL_CPPFLAGS  := -fexceptions
LOCAL_CPPFLAGS  += -frtti
LOCAL_CPPFLAGS  += -DBOOST_THREAD_LINUX
LOCAL_CPPFLAGS  += -DBOOST_HAS_PTHREADS
LOCAL_CPPFLAGS  += -D__arm__
LOCAL_CPPFLAGS  += -D_REENTRANT
LOCAL_CPPFLAGS  += -D_GLIBCXX__PTHREADS
LOCAL_CPPFLAGS  += -DBOOST_HAS_GETTIMEOFDAY

LOCAL_SRC_FILES := main.cpp

include $(BUILD_SHARED_LIBRARY)

ТакжеЯ пытался собрать с Crystax_NDK_r4 и Android_NDK_r5b, но это не решило проблему.

Есть идеи?

Ответы [ 3 ]

6 голосов
/ 03 февраля 2011

Я решил проблему.Я указал неверный путь к NDK.Скрипт патчей CrystaX NDK тоже.Так что теперь это работает!

4 голосов
/ 08 июля 2013

Я только что нашел простой способ создания надстройки под Android NDK, который не нуждается в исправлении наддува.

Я не использую Android.mk для создания boost, вместо этого я использую автономный toolchain для сборки, просто свяжу toolchain CodeSourcery.

  1. Сначала подготовьте набор инструментов NDK:

    Установите набор инструментов NDK как отдельный набор инструментов. См. $ NDK / docs / STANDALONE-TOOLCHAIN.html

    Добавить путь к корзине кросс-цепочки для вашего PATH

  2. Build boost. Инструмент сборки, в Boost prj:

    . / Bootstrap.sh

  3. echo "используя gcc: android: arm-linux-androideabi-g ++;" > $ HOME / user-config.jam

  4. Пример сборки

    . / B2 --prefix = $ HOME / mybuild --with-thread - с набором системных инструментов = многопоточность gcc-android = многоканальная = статическая установка

Надеюсь, это поможет вам.

1 голос
/ 13 января 2012

Вы можете скачать коллекцию скриптов, которые будут загружать и создавать некоторые популярные библиотеки c / c ++ с открытым исходным кодом для android и ios, включая boost, в этом месте.

https://github.com/mevansam/cmoss

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...