Cocos2dx eclipse: Various "error: undefined reference to"

I am trying to port an iOS game to Android platform with cocos2dx 2.0.4. The core of the game is written in C ++, and we managed to run it on iOS, because the game is available in the Apple Store. I am using NDK r8d and the most recent SDK, but I run into a lot of problems when trying to build.

My application.mk looks like this:

APP_STL := stlport_shared
APP_CPPFLAGS := -frtti
NDK_TOOLCHAIN_VERSION=4.7

      

Android.mk:

LOCAL_PATH := $(call my-dir)

include $(CLEAR_VARS)

ifdef STLG
    LOCAL_MODULE := stlport_stlg
else
    LOCAL_MODULE := stlport
endif
LOCAL_CFLAGS += -D__ANDROID__ \
     -isystem $(SYSROOT)/usr/include \
LOCAL_MODULE := game_shared

LOCAL_MODULE_FILENAME := libgame

LOCAL_CPPFLAGS += -fexceptions                   


LOCAL_C_INCLUDES := $(LOCAL_PATH)/../../Classes         
 LOCAL_C_INCLUDES := $(LOCAL_PATH)/../../Classes $(LOCAL_PATH)/../../../../Box2D $(LOCAL_PATH)/../../../../cocos2dx $(LOCAL_PATH)/../../../../   

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)

      

Here's the console log (only errors are displayed):

/Users/arianna/android/android-ndk-r8d/sources/cxx-stl/stlport/stlport/stl/_alloc.h:158: error: undefined reference to 'std::__node_alloc::_M_allocate(unsigned int&)'
make: Leaving directory `/Users/arianna/android/cocos2d-2.0-x-2.0.4/grannnnnnny/proj.android'
/Users/arianna/android/android-ndk-r8d/sources/cxx-stl/stlport/stlport/stl/_alloc.h:161: error: undefined reference to 'std::__node_alloc::_M_deallocate(void*, unsigned int)'
/Users/arianna/android/android-ndk-r8d/sources/cxx-stl/stlport/stlport/stl/_string.c:600: error: undefined reference to 'std::__stl_throw_length_error(char const*)'
/Users/arianna/android/cocos2d-2.0-x-2.0.4/grannnnnnny/proj.android/../../cocos2dx/actions/CCActionInterval.cpp:386: error: undefined reference to '__dynamic_cast'
/Users/arianna/android/cocos2d-2.0-x-2.0.4/grannnnnnny/proj.android/../../cocos2dx/actions/CCActionInterval.cpp:1783: error: undefined reference to '__dynamic_cast'
/Users/arianna/android/cocos2d-2.0-x-2.0.4/grannnnnnny/proj.android/../../cocos2dx/actions/CCActionInterval.cpp:1838: error: undefined reference to '__dynamic_cast'
/Users/arianna/android/cocos2d-2.0-x-2.0.4/grannnnnnny/proj.android/../../cocos2dx/actions/CCActionInterval.cpp:1906: error: undefined reference to '__dynamic_cast'
/Users/arianna/android/android-ndk-r8d/sources/cxx-stl/stlport/stlport/stl/_vector.c:41: error: undefined reference to 'std::__stl_throw_length_error(char const*)'
/Users/arianna/android/android-ndk-r8d/sources/cxx-stl/stlport/stlport/stl/_vector.c:45: error: undefined reference to 'std::__stl_throw_out_of_range(char const*)'
/Users/arianna/android/android-ndk-r8d/sources/cxx-stl/stlport/stlport/stl/_string.c:604: error: undefined reference to 'std::__stl_throw_out_of_range(char const*)'

/Users/arianna/android/android-ndk-r8d/sources/cxx-stl/stlport/stlport/stl/_vector.c:41: error: undefined reference to 'std::__stl_throw_length_error(char const*)'

./obj/local/armeabi/libcocos2d.a(CCDirector.o):CCDirector.cpp:function typeinfo for cocos2d::CCDirector: error: undefined reference to 'vtable for __cxxabiv1::__vmi_class_type_info'

/Users/arianna/android/android-ndk-r8d/sources/cxx-stl/stlport/stlport/stl/_vector.c:41: error: undefined reference to 'std::__stl_throw_length_error(char const*)'

collect2: error: ld returned 1 exit status

make: *** [obj/local/armeabi/libgame.so] Error 1

      

Any help is greatly appreciated, thanks ...

+3


source to share


2 answers


Try this at application.mk APP_STL: = gnustl_static?



0


source


You are getting the above undefined reference error because you have not added the required libraries to your Android.mk files. It looks something like this.

LOCAL_LDLIBS: = -L $ (call host path, $ (LOCAL_PATH) /../../ libs / $ (TARGET_ARCH_ABI)) \ -lcocos2d -lGLESv1_CM -llog -lgame_logic



I got stuck with this issue even after adding libraries. Its something to do with setting the path, but I don't know how ..

If you solve it let me know

0


source







All Articles