【发布时间】:2011-08-15 16:52:16
【问题描述】:
我一直在为 iOS 构建游戏应用程序。该应用程序运行良好,但我今天进行了相当大的重组,使其更加“兼容”模型-视图-控制器。
我已经用 C++ 构建了主游戏引擎,但使用 Objective-C 来管理 viewControllers、视图等。
现在,当我编译项目时,我在链接阶段遇到错误。详情如下:
ld:重复符号 ApplicationEngine::OnFingerUp(Vector2) 在 /Users/Dan/Library/Developer/Xcode/DerivedData/BlackHoles-exrlidtstxzdtsbyjghgquhlsqul/Build/Intermediates/BlackHoles.build/Debug-iphonesimulator/BlackHoles.build/Objects- normal/i386/ApplicationEngine.o 和 /Users/Dan/Library/Developer/Xcode/DerivedData/BlackHoles-exrlidtstxzdtsbyjghgquhlsqul/Build/Intermediates/BlackHoles.build/Debug-iphonesimulator/BlackHoles.build/Objects-normal/i386/AppDelegate.o用于架构 i386 collect2: ld 返回 1 个退出状态 命令 /Developer/Platforms/iPhoneSimulator.platform/Developer/usr/bin/g++-4.2 失败,退出代码为 1
OnFingerUp 是我的 C++ ApplicationEngine 中的一个函数,并从 viewController 中调用。
问题是否可能是由于我的#includes / #imports 中的一些混淆引起的?
我的 AppDelegate 文件需要#include 一个 MainViewController 文件来设置初始 viewController。 MainViewController 依次#includes ApplicationEngine 文件以实例化该类。 ApplicationEngine 包含 OnFingerUp 方法。然后,当我获得触摸输入时,会从 MainViewController 调用 OnFingerUp 方法。这个包含序列是否会导致重复?
我注意到,如果我暂时从应用程序中完全删除 OnFingerUp 方法,那么 ApplicationEngine 中的另一个方法也会出现同样的问题。
编译单个文件时没有任何错误或警告。我也尝试过清理所有并重新编译,但没有任何乐趣。
有人对我如何解决这个问题有任何建议吗?谢谢,丹。
【问题讨论】:
-
发布部分 MainViewController.h 中包含您的#imports 行的问题。
标签: iphone c++ objective-c xcode compiler-construction