不以“开始”开头时出现链接器错误;“HelloWorld”;场景 我刚刚开始使用COCOS2D-XC++(3.4版),我正在尝试为Mac构建一个简单的游戏,但是当我在AppDeaveT.CPP 中更改这行时 auto scene = HelloWorld::createScene();

不以“开始”开头时出现链接器错误;“HelloWorld”;场景 我刚刚开始使用COCOS2D-XC++(3.4版),我正在尝试为Mac构建一个简单的游戏,但是当我在AppDeaveT.CPP 中更改这行时 auto scene = HelloWorld::createScene();,c++,macos,linker,cocos2d-x,C++,Macos,Linker,Cocos2d X,到我的自定义场景 auto scene = KeyboardScene::createScene(); 我收到以下链接器错误: Undefined symbols for architecture x86_64: "KeyboardScene::createScene()", referenced from: AppDelegate::applicationDidFinishLaunching() in AppDelegate.o ld: symbol(s) not found

到我的自定义场景

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).
我不知道我缺少什么,非常感谢你的帮助,谢谢

如果要查看自定义类源代码,请访问:


这可能是两种情况之一的结果

首先。您根本不定义
KeyboardScene::createScene()
符号。检查您是否在
KeyboardScene.cpp
文件中实际具有
KeyboardScene::createScene()
的定义。您
KeyboardScene.cpp
应该包含如下代码:

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

第二。您不编译
KeyboardScene.cpp
,也不将生成的
KeyboardScene.o
链接到可执行文件中。检查是否包含
KeyboardScene.cpp
,以构建应用程序目标集,如这里的示例所示

是否在AppDelegate中包含
KeyboardScene.h
?粘贴库中有重复的代码,这可能是相关的。在代码编译时,不是
#include
问题,但不链接。确保您链接到了适用于x86_64(而非IOS arm)的正确
.dynlib
。谢谢,默认情况下,Xcode仅将其包含在IOS目标中。静态文件夹(蓝色图标)如何?