繁体   English   中英

链接到 Xcode 上的 arm64 库时出现链接器错误

[英]linker error while linking to arm64 library on Xcode

我正在尝试为 arm64 构建我的项目。 这个项目需要一个 arm64 libcrypto.a。 我想知道我是否缺少任何设置。 提前致谢...

我看到的错误是:

ld: warning: ignoring file /Users/Amy/Desktop/swift_proj/swift_proj/include/libcrypto.a, file was built for archive which is not the architecture being linked (x86_64): /Users/Amy/Desktop/swift_proj/swift_proj/include/libcrypto.a

我的项目设置如下所示:

Architectures: arm64
Base SDK: Latest iOS(iOS 11.4)
Build Active Architecture Only: No
Supported Platforms: iOS
Valid Architectures: arm64

我已将 info.plist 中的“RequiredDeviceCapabilities”更新为 arm64。
我检查了我试图链接的库类型:

[Amys-MacBook-Air:include$ lipo -info libcrypto.a 
input file libcrypto.a is not a fat file
Non-fat file: libcrypto.a is architecture: arm64

我不明白为什么错误说该项目是为 x86_64 构建的。

看起来 OpenSSL 在多架构构建方面存在一些问题,您需要解决这些问题才能使其正常工作,此处在 OS X 上构建多架构 OpenSSL的答案应该会有所帮助。

本质上,您必须使用#ifdef替换几个包含特定于体系结构的头文件的 OpenSSL 头文件,以在编译时检查系统体系结构。 在从源为您想要的每个目标构建 OpenSSL 之后执行此操作。 然后您将能够使用lipo工具将每个目标的 OpenSSL 静态库构建合并到一个静态库中,然后使用它。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM