我刚刚开始使用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

最佳答案

这可能是两件事之一导致的。

第一。您根本没有定义KeyboardScene::createScene()符号。检查您的KeyboardScene:: createScene()文件中是否确实有KeyboardScene.cpp的定义。您的KeyboardScene.cpp应该包含如下代码:

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

第二。您不编译KeyboardScene.cpp或不将结果KeyboardScene.o链接到可执行文件中。如此处的示例所示,检查是否包括KeyboardScene.cpp以构建应用程序目标的集合。

关于c++ - 不以 “HelloWorld”场景开头时的链接器错误,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/28355615/

10-10 13:03