So my code don’t want to compile for linux but for android it does. I don’t know what is going on. Im getting linker error undefined reference to function
Everything was compiling nice until I added my class.
Im working on Ubuntu 15.04
g++ (Ubuntu 5.1.1-4ubuntu12) 5.1.1 20150504
Thanks for any reply.
Some code now:
#ifndef __GAME_SCENE_H__
#define __GAME_SCENE_H__
#include "cocos2d.h"
class GameScene : public cocos2d::Layer
{
public:
GameScene(){}
virtual ~GameScene(){}
static cocos2d::Scene* createScene();
virtual bool init() override;
void menuPauseCallback(cocos2d::Ref* pSender);
// implement the "static create()" method manually
CREATE_FUNC(GameScene);
};
#endif // __GAME_SCENE_H__
GameScene.cpp:
#include "GameScene.h"
USING_NS_CC;
cocos2d::Scene* GameScene::createScene()
{
auto scene = Scene::create();
auto layer = GameScene::create();
scene->addChild(layer);
return scene;
}
bool GameScene::init()
{
if (!Layer::init())
{
return false;
}
Size visibleSize = Director::getInstance()->getVisibleSize();
Vec2 origin = Director::getInstance()->getVisibleOrigin();
auto sprite = Sprite::create("HelloWorld.png");
sprite->setPosition(Vec2(visibleSize.width/2 + origin.x, visibleSize.height/2 + origin.y));
this->addChild(sprite, 0);
}
/*
void GameScene::menuPauseCallback(cocos2d::Ref* pSender)
{
}*/
and errors:
CMakeFiles/MyGame.dir/Classes/AppDelegate.cpp.o: In function `AppDelegate::applicationDidFinishLaunching()':
/home/ekicam2/projekty-cocos/ChlebGame/Classes/AppDelegate.cpp:74: undefined reference to `GameScene::createScene()'
CMakeFiles/MyGame.dir/Classes/HelloWorldScene.cpp.o: In function `HelloWorld::menuNextCallback(cocos2d::Ref*)':
/home/ekicam2/projekty-cocos/ChlebGame/Classes/HelloWorldScene.cpp:105: undefined reference to `GameScene::createScene()'
collect2: error: ld returned 1 exit status
CMakeFiles/MyGame.dir/build.make:161: polecenia dla obiektu 'bin/MyGame' nie powiodły się
make[2]: *** [bin/MyGame] Błąd 1
CMakeFiles/Makefile2:66: polecenia dla obiektu 'CMakeFiles/MyGame.dir/all' nie powiodły się
make[1]: *** [CMakeFiles/MyGame.dir/all] Błąd 2
Makefile:76: polecenia dla obiektu 'all' nie powiodły się
make: *** [all] Błąd 2