Ошибка компоновщика, когда не начинается сцена "HelloWorld"

Я только начал использовать Cocos2d-x C++ (версия 3.4) и пытаюсь создать простую игру для Mac, но когда я изменяю эту строку в AppDelegate.cpp

auto scene = HelloWorld::createScene();

на мою обычную сцену

auto scene = KeyboardScene::createScene();

Я получаю эту ошибку компоновщика:

Undefined symbols for architecture x86_64:
  "KeyboardScene::createScene()", referenced from:
      AppDelegate::applicationDidFinishLaunching() in AppDelegate.o
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation).

Я не могу понять, что мне здесь не хватает, любая помощь приветствуется, спасибо.

Если вы хотите увидеть исходное посещение пользовательского класса:

http://pastebin.com/F0NhSUWf

1 ответ

Решение

Это, вероятно, может быть результатом одной из двух вещей.

Первый. Вы не определяете KeyboardScene::createScene() символ на всех. Проверьте, что у вас действительно есть определение KeyboardScene:: createScene() в тебе KeyboardScene.cpp файл. Вы KeyboardScene.cpp должен содержать такой код:

KeyboardScene::createScene() {
    // function body here
}

Во-вторых. Вы не компилируете KeyboardScene.cpp или не ссылаться на результат KeyboardScene.o в исполняемый файл. Проверь это KeyboardScene.cpp включен для создания набора цели приложения, как в примере здесь. Образец изображения

Другие вопросы по тегам