iOSとAndroidプロジェクトでBoostを使用する手順のメモ
タイトルはCocos2d-xとしたがC++を使うプロジェクトなら
別にCocos2d-xは無くても使用可能
※ ただしヘッダーオンリーで使えるライブラリのみ 参考
実行した環境
- Xcode v6.3.2
- Android NDK r10e
- Cocos2d-x v3.6
Boostをダウンロードしてプロジェクトに追加する
インクルードパスを設定する(iOS)
TARGETS > Build Settings > Search Paths > Header Search Paths
に "$(SRCROOT)/../Libraries/boost/include" を追加する。
インクルードパスを設定する(Android)
Android.mkに
LOCAL_C_INCLUDES += $(LOCAL_PATH)/../../Libraries/boost/includ
を追加する
Android.mk
LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
$(call import-add-path,$(LOCAL_PATH)/../../cocos2d)
$(call import-add-path,$(LOCAL_PATH)/../../cocos2d/external)
$(call import-add-path,$(LOCAL_PATH)/../../cocos2d/cocos)
LOCAL_MODULE := cocos2dcpp_shared
LOCAL_MODULE_FILENAME := libcocos2dcpp
LOCAL_SRC_FILES := hellocpp/main.cpp \
../../Classes/AppDelegate.cpp \
../../Classes/HelloWorldScene.cpp
LOCAL_C_INCLUDES := $(LOCAL_PATH)/../../Classes
# ここに追加
LOCAL_C_INCLUDES += $(LOCAL_PATH)/../../Libraries/boost/include
# _COCOS_HEADER_ANDROID_BEGIN
# _COCOS_HEADER_ANDROID_END
LOCAL_STATIC_LIBRARIES := cocos2dx_static
# _COCOS_LIB_ANDROID_BEGIN
# _COCOS_LIB_ANDROID_END
include $(BUILD_SHARED_LIBRARY)
$(call import-module,.)
# _COCOS_LIB_IMPORT_ANDROID_BEGIN
# _COCOS_LIB_IMPORT_ANDROID_END
使ってみる
# include <string>
# include <boost/lexical_cast.hpp>
# include <boost/uuid/random_generator.hpp>
# include <boost/uuid/uuid_io.hpp>
# include "cocos2d.h"
void test_boost() {
boost::uuids::random_generator gen;
auto uuid = boost::lexical_cast<std::string>(gen());
CCLOG("uuid = %s", uuid.c_str());
}
おわり