Android NDK-没有名为';功能';在命名空间中';std&x27;
在使用Cocos-2dx和Clang构建Android NDK时,我一直遇到以下错误Android NDK-没有名为';功能';在命名空间中';std&x27;,android,c++,android-ndk,cocos2d-x,Android,C++,Android Ndk,Cocos2d X,在使用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; Android.mk LOCAL_CFLAGS :=-D__GXX_EXPERIME
jni/../../Classes/Facebook/FacebookConstants.h:44:14: error: no type named 'function' in namespace 'std'
typedef std::function<void()> FacebookLoginCallback;
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)
我想你没有链接器错误。您有一个编译器错误。问题是,应用程序中没有提到对C++11的支持。您必须通过在
Application.mk
文件中指定-std=c++11
编译器标志(APP\u CPPFLAGS
)来使用Clang附带的标志,该文件位于jni
文件夹中。i、 e
APP_CPPFLAGS := -frtti -DCC_ENABLE_CHIPMUNK_INTEGRATION=1 -DCOCOS2D_DEBUG=1 -std=c++11
别忘了将其包含在标题中
#include <functional>
#包括
在我的项目cocos2d-xv3.0.0中,这是Android构建所需要的,但不是iOS。我想它也包括在其他地方。我也有同样的问题,并通过以下方式重新爱上了它: 在Android.mk文件中,添加
LOCAL_CPP_EXTENSION += .h
NDK甚至支持C++11吗?应该支持,我通过将内容从本地CPP_标志移动到应用CPP_标志来修复它。显然,我在网上读到的例子已经过时了:)我还必须添加一个标志,以防止缩小游戏引擎本身造成的错误。如果你已经修复了它,请不要忘记在可能的时候给出答案。你能为你的答案添加更多细节吗?它解决了问题吗?您在哪里包括了修改?
LOCAL_CPP_EXTENSION += .h