我的雪豹10.6.2收到以下错误在Xcode 3.2.1每当我尝试编译由Appcelerator的钛产生的任何iPhone应用程序。但是,只有当我选择的架构菜单上的iPhone模拟器出现生成错误,如果我选择在iPhone设备,我能到我的设备上运行的应用程序。

更进一步,iPhone仿真成功发射,并直接从使用的Xcode构建钛环境执行该程序。

这是为什么?

  

ld: duplicate symbol _main in Resources/libTitanium.a(main.o) and /Users/prithviraj/Documents/project/Final/build/iphone/build/Final.build/Debug-iphonesimulator/Final.build/Objects-normal/i386/main.o collect2: ld returned 1 exit status Command /Developer/Platforms/iPhoneSimulator.platform/Developer/usr/bin/gcc-4.2 failed with exit code 1

有帮助吗?

解决方案

我不能告诉你为什么发生这种情况,但我可以提出一个解决办法。当我注释掉这是我的钛项目产生的main.m文件中的全部内容,我能成功编译并在模拟器上运行。让我知道是否适合你。

其他提示

检查,如果你有主功能的多个声明在你的项目。

我只花了几个小时争夺这一块。这是因为我用的是-all_load链接标志。如果使用该标志,以绕过类别的bug,还有一些其他的解决办法 - 看的此处

我也有类似的问题。单元测试类是意外包括在我的构建。如果你搜索你的项目“主(”你可能会发现重复的功能。

这发生在我有两个原因:

1:A类调用类B和两个进口了相同的类。通过在.m文件导入类修复它。

2:两个类具有相同的名称(即使该常数以.m文件中定义的)的常数。通过改变常数的名称解决它。

我有这个问题,因为我定义文件作为这样:

@UIApplicationMain
class AppDelegate: UIResponder, UIApplicationDelegate {
... 
} 

和也有一个文件的main.m:

int main(int argc, char* argv[])
{
    @autoreleasepool {
        int retVal = UIApplicationMain(argc, argv, nil, @"AppDelegate");
        return retVal;
    }
}

好像有多种方式进入这种状态。我的是不同的。我读一个提示,你可以从一个事件的.xib选择拖到.H实现您的视图控制器,它会自动根你的方法。它没有 - 这是很酷的。我立刻开始了重复的符号错误 - 这是不冷静

我没有时间深入挖掘链接,看看发生了什么。我创建了一个新的视图控制器,复制我的旧的.xib的情况下进入新来的家伙。删除旧.H,.M和的.xib和建造,并再次合作。很奇怪,很讨厌浪费时间。

有明显与此xcode的 “方便” 一些错误。

我发现这发生了,当我在它(比如abc.m)曾与一个主要功能的实现文件,也有另一个main.m。一旦我评论出abc.m的主要功能,该项目编译成功。

根据离我可以从这些其他答案告诉,我要去需要被删除一堆main方法。

但是,要做到这一点很容易我首先需要从我的文件中删除所有的GD的意见,因为他们刻苦钻研与意见记录在几乎所有其他行

这正则表达式匹配所有的C多行注释,包括他们的定界符&可以帮助你在你的旅程

/\*((?!\*/).)*\*/

我在寻找一个正确的答案,但对我的工作没有什么用了一个多小时。 最后,告诉自己的事情Xcode是重复的,所以去特定的文件夹(在这种情况下:/Users/prithviraj/Documents/project/Final/build/iphone/build/Final.build/Debug-iphonesimulator/Final.build/对象正常/ I386 / main.o),此并删除所有文件,并检查同一项目中的特定的类/接口是否被声明两次,如果是删除它。

在缺失清洁和运行项目。

它为我希望这有助于(-_-)。

删除/Users/{username}/Library/Developer/Xcode/DerivedData文件夹并生成一次。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top