0

I am facing a weird problem related to android ndk compilation when I put .cpp file in Android.mk . This gives undefined errors :

   LOCAL_PATH:= $(call my-dir)

 include $(CLEAR_VARS)
LOCAL_ARM_MODE  := arm
LOCAL_MODULE:= rcseucr

LOCAL_CFLAGS+= \
    -D__IMSC_PORT_LINUX__\
    -D__IMSC_PORT_ANDROID__\
    -DICF_PORT_LINUX\
    -DICF_PORT_ANDROID



LOCAL_C_INCLUDES := ../../h \
../../../test/gsoap \
../../../test/h 


  LOCAL_SRC_FILES:= \
../../../gsoap/dom.cpp\
../../../gsoap/soapC.cpp\
../../../gsoap/stdsoap2.cpp\
../../../src/wrapper.cpp\
../../../src/entry_pt.c




 LOCAL_LDLIBS := -llog  

LOCAL_CPP_FEATURES += exceptions



 LOCAL_LDLIBS := -llog


include $(BUILD_STATIC_LIBRARY)

My Errors during compilation are following:

  :/android-ndk-r10d/toolchains/arm-linux-androideabi-4.6/prebuilt/windows/bin/../lib/gcc/arm-linux-androideabi/4.6/../../../../arm-linux-androideabi/bin/ld.exe: jni/librcseucr.a(soapC.o): in function up__im_infoType::~up__im_infoType():D:/android-ndk-r10d/sources/cxx-stl/stlport/stlport/stl/_alloc.h:161: error: undefined reference to 'std::__node_alloc::_M_deallocate(void*, unsigned int)'
Line 162: D:/android-ndk-r10d/toolchains/arm-linux-androideabi-4.6/prebuilt/windows/bin/../lib/gcc/arm-linux-androideabi/4.6/../../../../arm-linux-androideabi/bin/ld.exe: jni/librcseucr.a(soapC.o): in function _ocp__external_list::~_ocp__external_list():D:/android-ndk-r10d/sources/cxx-stl/stlport/stlport/stl/_alloc.h:161: error: undefined reference to 'std::__node_alloc::_M_deallocate(void*, unsigned int)'
Line 163: D:/android-ndk-r10d/toolchains/arm-linux-androideabi-4.6/prebuilt/windows/bin/../lib/gcc/arm-linux-androideabi/4.6/../../../../arm-linux-androideabi/bin/ld.exe: jni/librcseucr.a(soapC.o): in function up__urlType::~up__urlType():D:/android-ndk-r10d/sources/cxx-stl/stlport/stlport/stl/_alloc.h:161: error: undefined reference to 'std::__node_alloc::_M_deallocate(void*, unsigned int)'
Line 164: D:/android-ndk-r10d/toolchains/arm-linux-androideabi-4.6/prebuilt/windows/bin/../lib/gcc/arm-linux-androideabi/4.6/../../../../arm-linux-androideabi/bin/ld.exe: jni/librcseucr.a(soapC.o): in function _rl__resource_lists::~_rl__resource_lists():D:/android-ndk-r10d/sources/cxx-stl/stlport/stlport/stl/_alloc.h:161: error: undefined reference to 'std::__node_alloc::_M_deallocate(void*, unsigned int)'
Line 165: D:/android-ndk-r10d/toolchains/arm-linux-androideabi-4.6/prebuilt/windows/bin/../lib/gcc/arm-linux-androideabi/4.6/../../../../arm-linux-androideabi/bin/ld.exe: jni/librcseucr.a(soapC.o): in function cp__oneType::~cp__oneType():jni/../../../gsoap/soapStub.h:6831: error: undefined reference to '__cxa_end_cleanup'
Line 166: D:/android-ndk-r10d/toolchains/arm-linux-androideabi-4.6/prebuilt/windows/bin/../lib/gcc/arm-linux-androideabi/4.6/../../../../arm-linux-androideabi/bin/ld.exe: jni/librcseucr.a(soapC.o):(.ARM.extab.text._ZN11cp__oneTypeD2Ev+0x0): error: undefined reference to '__gxx_personality_v0'
Line 167: D:/android-ndk-r10d/toolchains/arm-linux-androideabi-4.6/prebuilt/windows/bin/../lib/gcc/arm-linux-androideabi/4.6/../../../../arm-linux-androideabi/bin/ld.exe: jni/librcseucr.a(soapC.o): in function cp__oneType::~cp__oneType():jni/../../../gsoap/soapStub.h:6831: error: undefined reference to '__cxa_end_cleanup'
Line 168: D:/android-ndk-r10d/toolchains/arm-linux-androideabi-4.6/prebuilt/windows/bin/../lib/gcc/arm-linux-androideabi/4.6/../../../../arm-linux-androideabi/bin/ld.exe: jni/librcseucr.a(soapC.o):(.ARM.extab.text._ZN11cp__oneTypeD0Ev+0x0): error: undefined reference to '__gxx_personality_v0'
Line 169: D:/android-ndk-r10d/toolchains/arm-linux-androideabi-4.6/prebuilt/windows/bin/../lib/gcc/arm-linux-androideabi/4.6/../../../../arm-linux-androideabi/bin/ld.exe: jni/librcseucr.a(soapC.o): in function _ns4__simservs_extensions::~_ns4__simservs_extensions():D:/android-ndk-r10d/sources/cxx-stl/stlport/stlport/stl/_alloc.h:323: error: undefined reference to '__cxa_end_cleanup'
Line 170: D:/android-ndk-r10d/toolchains/arm-linux-androideabi-4.6/prebuilt/windows/bin/../lib/gcc/arm-linux-androideabi/4.6/../../../../arm-linux-androideabi/bin/ld.exe: jni/librcseucr.a(soapC.o):(.ARM.extab.text._ZN25_ns4__simservs_extensionsD2Ev+0x0): error: undefined reference to '__gxx_personality_v0'
Line 171: D:/android-ndk-r10d/toolchains/arm-linux-androideabi-4.6/prebuilt/windows/bin/../lib/gcc/arm-linux-androideabi/4.6/../../../../arm-linux-androideabi/bin/ld.exe: jni/librcseucr.a(soapC.o): in function __oxe__allowOfflineStorageType_sequence::~__oxe__allowOfflineStorageType_sequence():D:/android-ndk-r10d/sources/cxx-stl/stlport/stlport/stl/_alloc.h:323: error: undefined reference to '__cxa_end_cleanup'
Line 172: D:/android-ndk-r10d/toolchains/arm-linux-androideabi-4.6/prebuilt/windows/bin/../lib/gcc/arm-linux-androideabi/4.6/../../../../arm-linux-androideabi/bin/ld.exe: jni/librcseucr.a(soapC.o):(.ARM.extab.text._ZN39__oxe__allowOfflineStorageType_sequenceD2Ev+0x0): error: undefined reference to '__gxx_personality_v0'
Line 173: D:/android-ndk-r10d/toolchains/arm-linux-androideabi-4.6/prebuilt/windows/bin/../lib/gcc/arm-linux-androideabi/4.6/../../../../arm-linux-androideabi/bin/ld.exe: jni/librcseucr.a(soapC.o): in function soap_in_std__vectorTemplateOfPointerToocp__anchorType(soap*, char const*, std::vector<ocp__anchorType*, std::allocator<ocp__anchorType*> >*, char const*):D:/android-ndk-r10d/sources/cxx-stl/stlport/stlport/stl/_alloc.h:158: error: undefined reference to 'std::__node_alloc::_M_allocate(unsigned int&)'
Line 174: D:/android-ndk-r10d/toolchains/arm-linux-androideabi-4.6/prebuilt/windows/bin/../lib/gcc/arm-linux-androideabi/4.6/../../../../arm-linux-androideabi/bin/ld.exe: jni/librcseucr.a(soapC.o): in function soap_copy_std__vectorTemplateOfPointerTorl__entry_refType(soap*, int, int, void*, unsigned int, void const*, unsigned int):D:/android-ndk-r10d/sources/cxx-stl/stlport/stlport/stl/_alloc.h:158: error: undefined reference to 'std::__node_alloc::_M_allocate(unsigned int&)'
Line 175: D:/android-ndk-r10d/toolchains/arm-linux-androideabi-4.6/prebuilt/windows/bin/../lib/gcc/arm-linux-androideabi/4.6/../../../../arm-linux-androideabi/bin/ld.exe: jni/librcseucr.a(soapC.o): in function soap_copy_std__vectorTemplateOfPointerTorl__entry_refType(soap*, int, int, void*, unsigned int, void const*, unsigned int):D:/android-ndk-r10d/sources/cxx-stl/stlport/stlport/stl/_alloc.h:343: error: undefined reference to '__cxa_allocate_exception'
Line 176: D:/android-ndk-r10d/toolchains/arm-linux-androideabi-4.6/prebuilt/windows/bin/../lib/gcc/arm-linux-androideabi/4.6/../../../../arm-linux-androideabi/bin/ld.exe: jni/librcseucr.a(soapC.o): in function soap_copy_std__vectorTemplateOfPointerTorl__entry_refType(soap*, int, int, void*, unsigned int, void const*, unsigned int):D:/android-ndk-r10d/sources/cxx-stl/stlport/stlport/stl/_alloc.h:343: error: undefined reference to 'std::bad_alloc::bad_alloc()'
Line 177: D:/android-ndk-r10d/toolchains/arm-linux-androideabi-4.6/prebuilt/windows/bin/../lib/gcc/arm-linux-androideabi/4.6/../../../../arm-linux-androideabi/bin/ld.exe: jni/librcseucr.a(soapC.o): in function soap_copy_std__vectorTemplateOfPointerTorl__entry_refType(soap*, int, int, void*, unsigned int, void const*, unsigned int):D:/android-ndk-r10d/sources/cxx-stl/stlport/stlport/stl/_alloc.h:343: error: undefined reference to '__cxa_throw'
Line 178: D:/android-ndk-r10d/toolchains/arm-linux-androideabi-4.6/prebuilt/windows/bin/../lib/gcc/arm-linux-androideabi/4.6/../../../../arm-linux-androideabi/bin/ld.exe: jni/librcseucr.a(soapC.o): in function soap_copy_std__vectorTemplateOfPointerTorl__entry_refType(soap*, int, int, void*, unsigned int, void const*, unsigned int):D:/android-ndk-r10d/sources/cxx-stl/stlport/stlport/stl/_alloc.h:343: error: undefined reference to 'typeinfo for std::bad_alloc'
Line 179: D:/android-ndk-r10d/toolchains/arm-linux-androideabi-4.6/prebuilt/windows/bin/../lib/gcc/arm-linux-androideabi/4.6/../../../../arm-linux-androideabi/bin/ld.exe: jni/librcseucr.a(soapC.o): in function soap_copy_std__vectorTemplateOfPointerTorl__entry_refType(soap*, int, int, void*, unsigned int, void const*, unsigned int):D:/android-ndk-r10d/sources/cxx-stl/stlport/stlport/stl/_alloc.h:343: error: undefined reference to 'std::bad_alloc::~bad_alloc()'
Line 180: D:/android-ndk-r10d/toolchains/arm-linux-androideabi-4.6/prebuilt/windows/bin/../lib/gcc/arm-linux-androideabi/4.6/../../../../arm-linux-androideabi/bin/ld.exe: jni/librcseucr.a(soapC.o): in function soap_in_std__vectorTemplateOfxsd__anyType(soap*, char const*, std::vector<soap_dom_element, std::allocator<soap_dom_element> >*, char const*):D:/android-ndk-r10d/sources/cxx-stl/stlport/stlport/stl/_alloc.h:158: error: undefined reference to 'std::__node_alloc::_M_allocate(unsigned int&)'
Line 181: D:/android-ndk-r10d/toolchains/arm-linux-androideabi-4.6/prebuilt/windows/bin/../lib/gcc/arm-linux-androideabi/4.6/../../../../arm-linux-androideabi/bin/ld.exe: jni/librcseucr.a(soapC.o): in function soap_in_std__vectorTemplateOfPointerTorl__listType(soap*, char const*, std::vector<rl__listType*, std::allocator<rl__listType*> >*, char const*):D:/android-ndk-r10d/sources/cxx-stl/stlport/stlport/stl/_alloc.h:158: error: undefined reference to 'std::__node_alloc::_M_allocate(unsigned int&)'

I am stuck from last 3 days. I have tried two approach but I think both are wrong: 1. If I use this flag:

    LOCAL_ALLOW_UNDEFINED_SYMBOLS := true

Then code compiles but it will give runtime error. so this is failed.

2.if I use CFLAG in my android.mk

     CFLAG=  -lstdc++\
             -x c++

I think I'm using g++ compiler but then my c code gives an error. So that approach also failed. I am creating .a file then adding it to another android.mk as static shared library but getting undefined reference Please help regarding this problem!

Don Branson
  • 13,631
  • 10
  • 59
  • 101
user1921139
  • 111
  • 1
  • 8
  • Have you seen this: http://stackoverflow.com/questions/9226513/linker-errors-in-android-ndk-undefined-reference-to-cxa-end-cleanup – Gary Bak Mar 27 '15 at 12:42
  • @GaryBak : Yes I have tried both stlport & gnuport in application.mk but still c++ code gives undefined error – user1921139 Mar 27 '15 at 13:04

0 Answers0