1

我有一个使用 PoDoFo 对 PDF 进行数字签名的项目,所以我试图将CTOpenSSLWrapper集成到一个同时使用 PoDoFo 和 OpenSSL 库的项目中。但是当我尝试构建它时,我遇到了链接问题:

在此处输入图像描述

ld: symbol(s) not found for architecture armv7如果我尝试在设备上运行,则会重复相同的错误。

我已经交叉检查了每一件事:

  1. 标头搜索路径
  2. 图书馆搜索路径
  3. Buildphases->为任何丢失的 .m 文件编译源代码

但我仍然有同样的问题。

我该如何解决这个问题?

4

1 回答 1

0

我已经交叉检查了每一件事:

 1. header search paths
 2. library search paths
 3. Buildphases->compile sources for any missing .m files

看来您包括库(仅提供库搜索路径)。

这是一个典型的库包括对我来说的样子。它适用于 OpenSSL,但同样适用于 PoDoFo。在下面的示例中,为 iOS 构建的 OpenSSL 位于/usr/local/ssl/ios. 标头位于 位于/usr/local/ssl/ios/include/openssl,库位于/usr/local/ssl/ios/lib

路径

在此处输入图像描述

图书馆

在此处输入图像描述


如果添加库仍然存在链接器错误,请执行以下操作以确保您的库具有所需的体系结构。我以 OpenSSL 为例,您应该使用 PoDoFo 库的名称。

xcrun -sdk iphoneos lipo -info libcrypto.a

您应该会看到如下内容:

Architectures in the fat file: libcrypto.a are: armv7 armv7s arm64 i386

如果您需要为 iOS 构建的 OpenSSL,请尝试这个 GitHub:noloader/openssl-1.0.1h-ios。它是一个胖库,拥有你可能需要的所有 iOS 架构。

于 2014-07-08T17:34:28.343 回答