Использование arc4Random на Android с NDK

0

Я использую arc4Random в моем проекте cocos2d-x (V 2.2.4).

В MacOS я могу просто использовать его, и для linux я включаю bsd-header (bsd/bsd.h), который я вручную установил в своей системе. Теперь я хочу скомпилировать его для андроида и получить ошибку:

jni/../../Classes/Scenes/GameScene.cpp: 29: 25: фатальная ошибка: bsd/bsd.h: такой компиляции файла или каталога не завершено.

Мне удалось улучшить существующий Makefile. Мой Android.mk выглядит так:

LOCAL_PATH := $(call my-dir)

include $(CLEAR_VARS)

LOCAL_MODULE := cocos2dcpp_shared

LOCAL_MODULE_FILENAME := libcocos2dcpp

LOCAL_SRC_FILES := hellocpp/main.cpp \
               ../../Classes/AppDelegate.cpp \
../../Classes/Scenes/MainMenuScene.cpp \
../../Classes/Scenes/GameScene.cpp \
../../Classes/BackgroundLayer.cpp \
../../Classes/VisibleRect.cpp \
../../Classes/Utils.cpp \
../../Classes/ScoreLayer.cpp \
../../Classes/HudLayer.cpp \
../../Classes/Animations.cpp \
../../Classes/Entities/Monster.cpp \
../../Classes/Scenes/SettingsScene.cpp \
../../Classes/Entities/Kitty.cpp \
../../Classes/Utils/md5.cpp \
../../Classes/Utils/ScreenLog.cpp \
../../Classes/Entities/StaticKitty.cpp \
../../Classes/Entities/FatKitty.cpp \
../../Classes/Entities/RocketKitty.cpp \
../../Classes/Entities/MovingKitty.cpp \
../../Classes/Input/GestureDetector.cpp

LOCAL_C_INCLUDES := $(LOCAL_PATH)/../../Classes \
    /usr/incude/bsd/bsd.h \
    $(LOCAL_PATH)/../../Classes/Scenes/ \
    $(LOCAL_PATH)/../../Classes/Input/ \
    $(LOCAL_PATH)/../../Classes/Utils/ \
    $(LOCAL_PATH)/../../Classes/Entities/ \
    $(LOCAL_PATH)/../../../../extensions/CocoStudio/Json/rapidjson/ \

LOCAL_WHOLE_STATIC_LIBRARIES += cocos2dx_static
LOCAL_WHOLE_STATIC_LIBRARIES += cocosdenshion_static
LOCAL_WHOLE_STATIC_LIBRARIES += box2d_static
LOCAL_WHOLE_STATIC_LIBRARIES += chipmunk_static
LOCAL_WHOLE_STATIC_LIBRARIES += cocos_extension_static

include $(BUILD_SHARED_LIBRARY)

$(call import-module,cocos2dx)
$(call import-module,cocos2dx/platform/third_party/android/prebuilt/libcurl)
$(call import-module,CocosDenshion/android)
$(call import-module,extensions)
$(call import-module,external/Box2D)
$(call import-module,external/chipmunk)

Я думаю, мне также пришлось бы скомпилировать материал bsd для андроида, не так ли?

Как я могу заставить это работать? Или есть ли другой способ решить это?

Теги:
android-ndk
cocos2d-x

1 ответ

0
Лучший ответ

После большого количества поисковых запросов и ожидания ответов я пришел к выводу, что лучше всего просто обменять вызовы arc4random с помощью простых c++ rand-вызовов. Я не смог скомпилировать это для armeabi, хотя это должно быть возможно, потому что для него доступен весь проект BSD. Но это не стоит стресса;)

Ещё вопросы

Сообщество Overcoder
Наверх
Меню