使用arc4Random在Android与NDK

Using arc4Random on Android with NDK

本文关键字:NDK Android arc4Random 使用      更新时间:2023-10-16

我在cocos2d-x (V 2.2.4)项目中使用arc4Random。

在MacOS上,我可以简单地使用它,对于linux,我包括了我手动安装在系统上的bsd-header (bsd/bsd.h)。我现在想在android上本机编译它并得到错误:

jni/../../Classes/Scenes/GameScene.cpp:29:25: fatal error: bsd/bsd.h: No such file or directory编译终止。

我设法增强了现有的Makefile。我的安卓。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)

我想我还必须为android编译bsd的东西,对吗?

我怎样才能使它工作?或者还有其他解决方法吗?

经过大量的谷歌搜索和等待回复后,我得出的结论是,最好只是将arc4random-calls与简单的c++ rand-calls交换。我还没有能够为armeabi编译这个,尽管它应该是可能的,因为整个BSD项目都可用于它。但是不值得你这么紧张;)