链接静态库

时间:2011-10-17 14:03:19

标签: iphone static-libraries ios5 automatic-ref-counting ios-frameworks

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

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的静态库。我的部署目标是4.3。这些库部署在iOS 5.0上。

之前我已经在4.3上部署了libs,但我在_objc_retainedObj而不是_deg2Rad中遇到了类似的错误。

非常感谢任何帮助!还有哪些其他信息可以帮助解决这个问题?

由于

3 个答案:

答案 0 :(得分:0)

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

答案 1 :(得分:0)

很可能你的静态库使用相同的功能(即deg2Rad),你得到了这个......

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

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

答案 2 :(得分:0)

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