2

Cocos-2dx と Clang を使用してビルドすると、Android NDK で次のエラーが発生し続けます

jni/../../Classes/Facebook/FacebookConstants.h:44:14: error: no type named 'function' in namespace 'std'
typedef std::function<void()> FacebookLoginCallback;

TApplication.mk

NDK_TOOLCHAIN_VERSION := clang
APP_STL := gnustl_static
APP_CPPFLAGS := -frtti -DCC_ENABLE_CHIPMUNK_INTEGRATION=1 -DCOCOS2D_DEBUG=1

Android.mk

LOCAL_CFLAGS :=-D__GXX_EXPERIMENTAL_CXX0X__
LOCAL_CPPFLAGS  := -std=c++11
LOCAL_CFLAGS += -std=gnu++11
LOCAL_PATH := $(call my-dir)

include $(CLEAR_VARS)

LOCAL_MODULE := game_shared

LOCAL_MODULE_FILENAME := libgame

LOCAL_SRC_FILES := hellocpp/main.cpp \
                   ../../Classes/AppDelegate.cpp \
                   ../../Classes/Facebook/Request.cpp \
                   ../../Classes/FriendListCell.cpp \
                   ../../Classes/Game.cpp \
                   ../../Classes/GameListCell.cpp \
                   ../../Classes/GameListHeaderCell.cpp \
                   ../../Classes/GameScene.cpp \
                   ../../Classes/LoginScene.cpp \
                   ../../Classes/MenuScene.cpp \
                   ../../Classes/NewGameScene.cpp \
                   ../../Classes/Parse/curl/docs/examples/asiohiper.cpp \
                   ../../Classes/Parse/curl/docs/examples/htmltitle.cpp \
                   ../../Classes/Parse/HTTP.cpp \
                   ../../Classes/Parse/lib_json/json_reader.cpp \
                   ../../Classes/Parse/lib_json/json_value.cpp \
                   ../../Classes/Parse/lib_json/json_writer.cpp \
                   ../../Classes/Parse/ParseHTTP.cpp \

LOCAL_C_INCLUDES += $(LOCAL_PATH)/../../Classes \
                      $(LOCAL_PATH)/../../Classes/Parse \
                      $(LOCAL_PATH)/../../Classes/Parse/json \
                      $(LOCAL_PATH)/../../Classes/Parse/lib_json \
                      $(LOCAL_PATH)/../../Classes/Facebook \

LOCAL_WHOLE_STATIC_LIBRARIES := cocos2dx_static cocosdenshion_static cocos_extension_static

include $(BUILD_SHARED_LIBRARY)

$(call import-module,CocosDenshion/android) \
$(call import-module,cocos2dx) \
$(call import-module,extensions)
4

3 に答える 3

2

リンカエラーはないと思います。コンパイラ エラーがあります。問題は、アプリケーションで C++11 のサポートについて言及していないことです。フォルダー内のファイルに-std=c++11コンパイラー・フラグ ( APP_CPPFLAGS) を指定して、Clang に付属するものを使用する必要があります。すなわちApplication.mkjni

APP_CPPFLAGS := -frtti -DCC_ENABLE_CHIPMUNK_INTEGRATION=1 -DCOCOS2D_DEBUG=1 -std=c++11
于 2013-10-10T10:23:33.863 に答える
1

ヘッダーに含めることを忘れないでください

#include <functional>

私のプロジェクト cocos2d-x v3.0.0 では、これは Android ビルドに必要ですが、iOS には必要ありません。他にも含まれていると思います。

于 2014-04-29T10:21:32.257 に答える