I’m building a game with cocos2d-x for iOS 6/7 (Using Xcode 5 and iOS SDK 7.0), and started introducing some patterns that exploit inheritance, and I ran into this exception.
libc++abi.dylib`vtable for __cxxabiv1::__si_class_type_info:
0x284a540: addb %al, (%eax)
0x284a542: addb %al, (%eax)
0x284a544: jo 0x284a4eb ; vtable for __cxxabiv1::__libcxxabi::__void + 91
0x284a546: testb (%edx), %al
0x284a548: lesl 2(%edx,%eax,4), %ebx
0x284a54c: movl $2046984796, %edx
0x284a551: popl %esp
The code looks this:
for (auto enemyItr = EnemyQueue::getEnemyContainer().begin(); enemyItr != EnemyQueue::getEnemyContainer().end(); ++enemyItr)
EnemyCharacter *enemyCharacter = dynamic_cast(*enemyItr);
CCSprite *enemy = enemyCharacter->getCharacterSprite(); // inhertiance introduced to EnemyCharacter class
CCRect enemyMeleeRect = enemy->boundingBox(); //-> exception
I thought this is a linker error, and tried including libstdc++ “Link Binary with Libraries”. I also tried including “-lstdc++” in Other Linker flags as well, but the exception persists.
Has anyone run into this issue?