我最近刚升级到新的XCode.升级后,我的一些应用程序将无法构建.我收到此错误:
ld: cannot link directly with /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS6.0.sdk/usr/lib/system/libcommonCrypto.dylib. Link against the umbrella framework 'System.framework' instead. for architecture armv7
clang: error: linker command failed with exit code 1 (use -v to see invocation)
Run Code Online (Sandbox Code Playgroud)
我已经尝试了一切 - 清洁,重新导入,改变架构......
请帮忙
Hei*_*ati 17
在我尝试了上述两种方法之后,我以不同的方式解决了这个问题.
问题是,当我将在主界面的库(主构建的设置...等),我最初寻找crypto,然后有两只库回来libcorecrypto.dylib并且liblibcommonCrypto.dylib,如果你注意到,无论是在不像一般为灰色,颜色存在您通常添加的黄色库.添加这些会导致编译器报告(缺少一些其他库,例如libz,或者需要更多函数的其他库).
如果您注意到上面两个库通常位于JavaScriptCore.framework库(黄色库)下,因此,通过删除上面的两个并JavaScriptCore.framework改为添加,问题得到解决,并build successful显示
另外要提一下,基于作为内部捆绑存在的灰色库JavaScriptCore.framework,libcrypto和另一个将不存在于/Library/.../system/path上面提到的,即你没有从系统中删除它们,它们就不存在了.
同样,解决方案是:
*从主XCODE项目设置中,不要添加:*dd
libcorecrypto.dylib
liblibcommonCrypto.dylib
Run Code Online (Sandbox Code Playgroud)
相反,添加:
JavaScriptCore.framework
Run Code Online (Sandbox Code Playgroud)
在你的.m(代码)中,通过执行以下操作来正常获取它们:
#include <CommonCrypto/CommonDigest.h> (or any of your other libs as needed in code)...
Run Code Online (Sandbox Code Playgroud)
它应该工作正常.
我希望这有帮助.
亲切的问候
我刚刚解决了这个问题,如下所示:
事实证明,libcommonCrypto.dylib 错误是一个转移注意力的错误。
按照上面的建议删除 libcommonCrypto.dylib 后,我收到了 9 个新错误。乍一看,我以为它们是加密错误,但实际上不是;对我来说,它实际上可以追溯到 zLib 没有被包含,它是在整个实现的更深层部分“导入”的(加密是其中的一部分)。
特别对我来说,它追溯到 ASIDataDecompressor.h,#import < zlib.h>
我通过包含缺少的 libz.dylib 框架来修复它;最终,我不必显式包含 libcommonCrypto.dylib。
因此,请务必在切换 libcommonCrypto 后仔细检查错误,并确保没有丢失其他一些库。
| 归档时间: |
|
| 查看次数: |
8799 次 |
| 最近记录: |