Я пытаюсь запустить Box2D с моим проектом Cocos2d-x. Я добавляю обнаружение столкновений, но получаю ошибку компоновщика
Неопределенные символы для архитектуры i386: «CContactListener :: CContactListener ()», на которую ссылаются из: HelloWorld :: init () в HelloWorldScene.o
Я попробовал несколько вещей и исследовал в течение нескольких дней, но не могу понять это. Любая помощь будет велика.
Вот некоторые фрагменты кода
HelloWorldScene.h
CContactListener *_contactListener; //Variable declared and #include "ContactListener.h" is present at the top
HelloWorldScene.cpp
_contactListener = new CContactListener(); //This line gets the error
_world->SetContactListener(_contactListener);
ContactListener.h
class CContactListener : public b2ContactListener {
public:CContactListener();
~CContactListener();
std::vector<ContactData>_contacts;
virtual void BeginContact(b2Contact* contact);
virtual void EndContact(b2Contact* contact);
virtual void PreSolve(b2Contact* contact, const b2Manifold* oldManifold);
virtual void PostSolve(b2Contact* contact, const b2ContactImpulse* impulse);
};
ContactListener.cpp
#include "ContactListener.h"
CContactListener::CContactListener(): _contacts()
{
}
CContactListener::~CContactListener()
{
}
//...other functions
CContactListener.cpp не был добавлен целевой сборки в Xcode. Я просто установил флажок цели для моего проекта в File Inspector для файла .ccp. Легко исправить.
Других решений пока нет …