0

我有一个使用多个静态库的项目,我不断收到这样的错误:

ld: duplicate symbol _deg2Rad in Frameworks/MyFramework.embeddedframework/
MyFramework.framework/MyFramework(MyFramework) and Frameworks/
MyFramework.embeddedframework/MyFramework.framework/MyFramework(MyFramework) for 
architecture armv7

Command /***/Development/Platforms/iPhoneOS.platform/Developer/
usr/bin/clang failed with exit code 1

我认为它与我在项目中使用的 ARC 以及错误中所述的库中的 ARC 有关。所述库还使用一个未启用 ARC 的静态库。我的部署目标是 4.3。这些库部署在 iOS 5.0 上。

我之前在 4.3 上部署了这些库,但使用 _objc_retainedObj 而不是 _deg2Rad 时出现了类似的错误。

很感谢任何形式的帮助!还有什么信息可以帮助某人解决这个问题?

谢谢

4

3 回答 3

0

在您的编译器标志配置中,您有-ObjC -all_load吗?尝试将它们添加到项目的目标中。然后清理并重建。有时我也遇到过这个问题,通常是因为我忘记了那些标志。

于 2011-10-17T14:07:04.207 回答
0

您的静态库很可能使用相同的函数(即 deg2Rad),而您正在得到这个......

不幸的是,尽管那些提供静态库的人应该自定义前缀所有的功能,但他们没有这样做,所以你最终会遇到这些情况......

解决方案是联系他们并要求他们为他们的 .h 文件公开的函数和变量自定义前缀......

于 2011-10-17T14:28:22.437 回答
0

忘记调整框架搜索路径是构建框架时遇到问题的另一个原因。

于 2011-11-12T15:26:38.640 回答