2014-07-08 40 views
1

我有一個使用PoDoFo進行數字簽名PDF的項目,所以我想將CTOpenSSLWrapper整合到一個使用PoDoFo和OpenSSL庫的項目中。但是當我嘗試與鏈接構建它,IAM越來越問題:與ld: symbol(s) not found for architecture armv7重複你如何在OpenSSL支持的iOS上構建PoDoFo?

enter image description here

同樣的錯誤,如果我嘗試在設備上運行。

我已經交叉檢查每一件事情:

  1. 頭搜索路徑
  2. 庫搜索路徑
  3. Buildphases->編譯源代碼,任何遺失.m文件

,但我仍然有同樣的問題。

我該如何解決這個問題?

+0

使用'CTOpenSSLWrapper'注意該版本的OpenSSL。它的OpenSSL 1.0.1c 2012年5月10日。1.0.1h是最新的,它修復了一些嚴重的漏洞。此外,胖庫缺少ARM64。 – jww

回答

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

路徑

enter image description here

圖書館

enter image description here


如果您仍然有鏈接錯誤後加入該庫,然後執行以下操作以確保您的庫具有您需要的體系結構。我以OpenSSL爲例,您應該使用PoDoFo庫的名稱。

xcrun -sdk iphoneos lipo -info libcrypto.a 

你應該看到:

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

如果你需要OpenSSL的內置於iOS,那就試試這個GitHub上:noloader/openssl-1.0.1h-ios。它是一個胖庫,並且擁有iOS可能需要的所有體系結構。

+0

感謝您的明確解釋。我已經驗證了您指定的內容,但我仍然遇到同樣的問題。 這是我正在研究的** [示例項目](https://github.com/Jagadeeshwar-Reddy/podofo_iOS_sample)**,如果您可以查看它並指出出現了什麼問題, 這將是很好的。 – Jagadeeshwar

+0

不幸的是,我的機器上沒有這些庫。所以我會得到一些不同的錯誤。 – jww

+0

這些庫實際上嵌入在示例項目本身中。我想你不會有任何與缺失庫有關的錯誤。 – Jagadeeshwar