error LNK2019: ссылка на неразрешенный внешний символ
Никак не могу исправить ошибку
#ifndef Button_h
#define Button_h
#include "cocos2d.h"
#include "ui/CocosGUI.h"
#include "Defines.h"
USING_NS_CC;
#define kExpandZone 20
#define kSafeZone 40
class Button : public ui::Widget
{
public:
static Button* create(Rect content, Rect expand, Rect safe);
enum State
{
IDLE = 0,
PUSHED,
DRAGOUT,
LONGPUSH
};
void setContentZone(Rect content);
void setExpandZone(Rect expand);
void setSafeZone(Rect safe);
void setAction(std::function<void()> callback);
void addItem(Node* item, State state);
~Button();
State getState();
protected:
bool init(Rect content, Rect expand, Rect safe);
virtual void setState(State state);
State _state;
std::function<void()> _callback;
void sendEvent();
Vector <Node*> items;
Rect _content;
Rect _expand;
Rect _safe;
bool eligibleTouch;
bool touchInContentZone(Touch* pTouch);
bool touchInExpandZone(Touch* pTouch);
bool touchInSafeZone(Touch* pTouch);
bool onTouchBegan(Touch* pTouch, Event* pEvent);
void onTouchMoved(Touch* pTouch, Event* pEvent);
void onTouchEnded(Touch* pTouch, Event* pEvent);
void onTouchCancelled(Touch* pTouch, Event* pEvent);
};
#endif /* Button_h */
#include "Button.h"
#include "Defines.h"
Button* Button::create(Rect content, Rect expand, Rect safe)
{
Button* button = new (std::nothrow) Button;
if (button && button->init(content, expand, safe))
{
button->autorelease();
return button;
}
CC_SAFE_DELETE(button);
return nullptr;
}
#include "HelloWorldScene.h"
#include "SimpleAudioEngine.h"
#include "Defines.h"
USING_NS_CC;
Scene* HelloWorld::createScene()
{
return HelloWorld::create();
}
// Print useful error message instead of segfaulting when files are not there.
static void problemLoading(const char* filename)
{
printf("Error while loading: %s\n", filename);
printf("Depending on how you compiled you might have to add 'Resources/' in front of filenames in HelloWorldScene.cpp\n");
}
// on "init" you need to initialize your instance
bool HelloWorld::init()
{
//////////////////////////////
// 1. super init first
if ( !Scene::init() )
{
return false;
}
auto visibleSize = Director::getInstance()->getVisibleSize();
Vec2 origin = Director::getInstance()->getVisibleOrigin();
square = Sprite::create("red_button06.png");
square->setPosition(Point(100, 350));
addChild(square);
auto idle = Sprite::create("red_button06.png");
idle->setOpacity(75);
auto pushed = Sprite::create("red_button06.png");
pushed->setOpacity(50);
auto dragout = Sprite::create("red_button06.png");
dragout->setOpacity(25);
Rect const content = Rect(idle->getContentSize() / -2, idle->getContentSize());
Rect const expand = Rect(content.origin - Point(20, 20), Size(content.size.width + 40, content.size.height + 40));
Rect const safe = Rect(content.origin - Point(40, 40), Size(content.size.width + 80, content.size.height + 80));
button = Button::create(content, expand, safe);
1>------ Сборка запущено: проект: TestTaskRBlast, конфигурация: Debug|Win32 ------
1>C:\AntsGames\RBlast\TestTaskRBlast\proj.win32\AppDelegate.obj : warning LNK4075: не учитывается "/EDITANDCONTINUE" из-за спецификации "/SAFESEH"
1> Создается библиотека C:\AntsGames\RBlast\TestTaskRBlast\proj.win32\Debug.win32\TestTaskRBlast.lib и объект C:\AntsGames\RBlast\TestTaskRBlast\proj.win32\Debug.win32\TestTaskRBlast.exp
1>C:\AntsGames\RBlast\TestTaskRBlast\proj.win32\HelloWorldScene.obj : error LNK2019: ссылка на неразрешенный внешний символ "public: static class Button * __cdecl Button::create(class cocos2d::Rect,class cocos2d::Rect,class cocos2d::Rect)" (?create@Button@@SAPAV1@VRect@cocos2d@@00@Z) в функции "public: virtual bool __thiscall HelloWorld::init(void)" (?init@HelloWorld@@UAE_NXZ).
1>C:\AntsGames\RBlast\TestTaskRBlast\proj.win32\Debug.win32\TestTaskRBlast.exe : fatal error LNK1120: неразрешенных внешних элементов: 1
========== Сборка: 0 успешно, 1 неудачно, 3 актуально, 0 пропущено ==========