2011-08-03 22 views
0

我在iPad应用程序中遇到上述错误。我在我的应用程序中使用xcode 4(通过链接二进制文件与库)添加一个静态库。当我bulid应用程序得到错误像在xcode 4中添加静态库后发生Apple Mach-o(id)错误

LD:重复的符号_OBJC_METACLASS _ $ _可达中/Users/indiait-supportservices/Desktop/Universal/lib/simulator/libSecurLib.a(Reachability.o)​​和/用户/ indiait -supportservices/Library/Developer/Xcode/DerivedData/ReceiverForiOS-avuvmyuaipqegxbkwsrfbymgadjj/Build/Intermediates/ReceiverForiOS.build/Debug-iphonesimulator/myApp iPad.build/Objects-normal/i386/Reachability.o for architecture i386 collect2:ld returned 1退出状态 命令/Developer/Platforms/iPhoneSimulator.platform/Developer/usr/bin/llvm-g++-4.2失败,退出代码1

我添加了该静态库所需的链接器标志以及“其他链接器fags”中的-all_load链接器标志,并且还添加了所有必需的框架。而且在我的应用程序中也没有重复的符号。我尝试使用编译器LLVM GCC 4.2更改为GGC 4.2(以及全部)。我搜索了堆栈溢出中的所有类似线程,并尝试了所有提到的解决方案。仍无法解决问题。是否该静态库未正确链接?有没有其他方法可以在xcode 4中添加库?

任何人都可以帮我吗?

感谢ü...

+0

如果你做一个干净的构建是否解决了这个问题? – ThomasW

+0

也可以在添加库时注意复制库复选框未被选中或被选中。如果它被检查,而不是使其未经检查,然后尝试建立你的项目后清理它.. – SJS

+0

@ThomasW:谢谢你的回应..我打扫,然后建立,仍然是问题仍然存在 – Mike

回答

0

如果这不符合您的构建问题,那么它出现的问题是,你都直接使用可达性,它也被用于通过libSecurLib.a。如果您从项目中删除Reachability代码(只是.m),您应该可以构建,但libSecurLib.a中使用的Reachability版本可能与您的标题使用的版本不同,因此您可能会得到其他错误。

解决此问题的一种方法是重命名您的项目包含的Reachability版本。

+0

非常感谢托马斯..它的工作 – Mike