gpt4 book ai didi

iphone - 在 Xcode 中项目构建的链接阶段出现重复符号问题

转载 作者:行者123 更新时间:2023-11-28 01:06:24 29 4
gpt4 key购买 nike

我一直在为 iOS 构建游戏应用程序。该应用程序运行良好,但我今天进行了相当大的重组,使其更加“兼容”模型- View - Controller 。

我用 C++ 构建了主要的游戏引擎,但使用 Objective-C 来管理 View Controller 、 View 等。

现在,当我编译项目时,我在链接阶段遇到错误。详情如下:

ld: duplicate symbol ApplicationEngine::OnFingerUp(Vector2) in /Users/Dan/Library/Developer/Xcode/DerivedData/BlackHoles-exrlidtstxzdtsbyjghgquhlsqul/Build/Intermediates/BlackHoles.build/Debug-iphonesimulator/BlackHoles.build/Objects-normal/i386/ApplicationEngine.o and /Users/Dan/Library/Developer/Xcode/DerivedData/BlackHoles-exrlidtstxzdtsbyjghgquhlsqul/Build/Intermediates/BlackHoles.build/Debug-iphonesimulator/BlackHoles.build/Objects-normal/i386/AppDelegate.o for architecture i386 collect2: ld returned 1 exit status Command /Developer/Platforms/iPhoneSimulator.platform/Developer/usr/bin/g++-4.2 failed with exit code 1

OnFingerUp 是我的 C++ ApplicationEngine 中的一个函数,并从 viewController 调用。

这个问题可能是由我的#includes/#imports 中的一些混淆引起的吗?

我的 AppDelegate 文件需要 #include 一个 MainViewController 文件来设置初始 viewController。 MainViewController 依次#includes ApplicationEngine 文件以实例化该类。 ApplicationEngine 包含 OnFingerUp 方法。当我获得触摸输入时,然后从 MainViewController 调用 OnFingerUp 方法。这个包含序列会导致重复吗?

我注意到,如果我暂时从应用程序中完全删除 OnFingerUp 方法,那么我会在 ApplicationEngine 中的另一个方法中遇到同样的问题。

编译单个文件时没有任何错误或警告。我也尝试过 Clean All 并重新编译,但没有成功。

有人对我如何解决这个问题有任何建议吗?谢谢,丹。

最佳答案

我可以想到 3 个原因:1) 不小心 #include .cpp 文件,2) 忘记头文件中的 #ifndef 保护,3) 在头文件中写入方法定义时忘记内联。

关于iphone - 在 Xcode 中项目构建的链接阶段出现重复符号问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5835829/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com