2012-10-05 50 views
0

我在运行我的应用程序时遇到问题。iOS6:xcode 4.5中的重复符号错误

由于重复符号,我收到构建失败。

enter image description here

我包括magtek idynamo SDK我的应用程序。在我以前的应用程序版本中,通常我将libMTSCRA.a添加到库中,并将MTSCRA.h添加到我的项目中。根据我的研究,人们建议发生这个问题是因为我引用了.h以及我已经设法在我的应用程序的ios5版本上工作的.a。令人沮丧的是......我一直把头撞在墙上。

任何想法?

UPDATE enter image description here 这是我的框架和库的屏幕截图。 libMTSCRA.a只列出一次。

谢谢。

+0

目前似乎很好。所以它在以前的编译器和iOS版本中起作用了吗? – 2012-10-17 17:11:40

+0

您的完整“其他链接器标志”设置对于目标是什么样的?如果它包含'-lMTSCRA',则链接器将链接库两次。 – Mecki

+0

-weak_framework UIKit -weak_framework AVFoundation -weak_framework CoreMedia -weak-ISystem – jongbanaag

回答

0

这个错误与头文件没有任何关系。相反,它表示列出的函数主体(通常在.m中,但是如果将它们构建到静态库中,则是静态库的一部分)将包含两次。

最有可能的是,你包括两次静态库。这可能是其中一种夹杂物是间接的;您将包含另一个静态库,该库也包含静态库。

+0

对不起,我真的很笨,但我该怎么办?我比较新的目标c。我的应用程序是基于手机的,所以我大部分时间都没有深入到客观的xcode。 – jongbanaag

+0

在左侧面板中选择您的项目,在中间面板中选择您的目标,然后查看“链接的框架和库”。检查libMTSCRA.a未列出两次。如果只是在那里尝试删除它并查看您的项目是否构建。 –

+0

我更新了问题。张贴的是我的框架和库的截图。 libMTSCRA.a只列出一次。 – jongbanaag

4

我有这个问题也和许多时间后,我可以通过去除其他链接器标志=>“-all_load”

解决它由于这个标志,2个库(的iPhoneOS和iphonesimulator)的MagTek的被同时包括在内。

+2

这个答案对我来说虽然我使用Cordova/Phonegap需要'-all_load'。因此,我在libCordova.a上使用了'-force_load'链接器标志,并可以删除'-all_load'。那谢谢啦! –