我有一个使用多个静态库的项目,我不断遇到这样的错误:
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中遇到了类似的错误。
非常感谢任何帮助!还有哪些其他信息可以帮助解决这个问题?
由于
答案 0 :(得分:0)
在编译器标志配置中,您有-ObjC -all_load
吗?尝试将这些添加到项目的目标中。然后清理并重建。我有时也遇到过这个问题,通常是因为我忘了那些旗帜。
答案 1 :(得分:0)
很可能你的静态库使用相同的功能(即deg2Rad),你得到了这个......
不幸的是,虽然那些提供静态库的人应该自定义前缀所有功能,但他们不这样做,所以你最终会遇到这种情况......
解决方案是联系他们并要求他们自定义他们的.h文件公开的函数和变量...
答案 2 :(得分:0)
忘记调整框架搜索路径是构建框架时遇到问题的另一个原因。